从数据库开始
假设你已经有一个要开展的工程项目了。要建立一个使用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文件中设置的表。
Windows 用户注意事项
如果你使用 My SQL? 4.1,你很可能需要修改服务器安全属性以允许old password方式。请修改 C:\Program Files\MySQL\MySQL Server 4.1 下的@my.ini@ 文件
如果修改了 my.ini 文件仍不能正常运行,则增加一个新的mysql用户,然后修改@database.yml@ 以使用这个新的用户及密码。
注:Windows下的RoR 1.0版本好象存在一个正好与此相反的问题:不支持old-style passwords。那样的话,直接忽略这一步。
另外,config中的database.yml中的空格相当诡异,以下错误就可能是此原因
引用
syntax error on line 22,col2:' host:localhost'