译文原文:http://wiki.rubyonrails.org/rails/pages/TutorialStepOne
注意本教程针对 Rails 2.0.1 及以上版本。照此教程,Rails 1.2.6或更低版本可能不能正常运行。
假设你已经有一个要开展的工程项目了。要建立一个使用MySQL数据库的Rails应用,使用这个命令:
rails -d mysql ProjectName
接着在 ProjectName/config目录中找到database.yml文件,用任意文本编辑器修改它,填入数据库相关信息。该文件的格式是这个样子的:
development: adapter: mysql encoding: utf8 database: ProjectName_development username: root password: 这里填入密码 host: localhost
设置完数据库信息后,运行以下命令:
rake db:create
这就创建了一个空数据库,要往里加内容(如数据表),只要运行以下命令:
ruby script/generate migration add_table
一个名为001_add_table.rb的数据迁移文件会创建在 ProjectName/db/migrate 目录下。通过该文件可以非常容易地设置工程要使用的数据表。打开该文件,添加所需的内容,如:
class AddTable < ActiveRecord::Migration
def self.up
create_table :people do |t|
# id字段会自动添加
t.column :name, :string, :limit => 50, :null => false
t.column :street1, :string, :limit => 70, :null => false
t.column :street2, :string, :limit => 70, :null => false
t.column :city, :string, :limit => 70, :null => false
t.column :state, :string, :limit => 2, :null => false
t.column :zip, :string, :limit => 10, :null => false
end
end
def self.down
drop_table :people
end
end
注:数据表中会自动创建一个主键(ID)字段,除非你要自定义一个ID字段,否则你不用指定它。
合法的字段类型有以下这些: binary, boolean, date, datetime, decimal, float, integer, string, time, 以及 timestamp。可用的选项有:limit, default, and null. 比方说 :null => false 用来指定该字段不能为空。这非常容易理解。
运行这个命令:
rake db:migrate
运行后,便创建了migration文件中设置的表。要进一步了解migration,请阅读UnderstandingMigrations。
如果你使用 My SQL 4.1,你很可能需要修改服务器安全属性以允许old password方式。请修改 C:\Program Files\MySQL\MySQL Server 4.1 下的@my.ini@ 文件
如果修改了 my.ini 文件仍不能正常运行,则增加一个新的mysql用户,然后修改@database.yml@ 以使用这个新的用户及密码。 (参照 mysql bug #847)
# Use old password encryption method (needed for 4.0 and older clients). old_passwords
注:Windows下的RoR 1.0版本好象存在一个正好与此相反的问题:不支持old-style passwords。那样的话,直接忽略这一步。
注: My SQL Administrator 1.1.6 运行 User Administration会无响应,这里可以找到解决方法:
http://bugs.mysql.com/bug.php?id=17879
这里描述的所有操作都可以使用mysql的命令行工具来完成,不过你可能更喜欢用GUI客户端工具。这里有一个工具列表: