内容摘要:为什么不用与编程相同的方式来管理数据库结构呢?自从开始使用Rails,终于找到了答案。通过Rails的功能,可以使用程序员的方式来管理MySQL数据库了。
事实上,当在Rails下创建一个新的model时,会自动的创建Migration文件。例如,创建一个contact模型时,在项目的db目录下,即可发现一个名为001_create_contacts.rb的文件,其内容如下所示:
classCreateContacts<ActiveRecord::Migration
defself.up
create_table:contactsdo|t|
end
end
defself.down
drop_table:contacts
end
end
如果想要创建数据表,可以把以上内容修改成如下内容:
classCreateContacts<ActiveRecord::Migration
defself.up
create_table:contactsdo|t|
t.column:name,:string,:null=>false
t.column:email,:string
t.column:phone,:string,:limit=>10,:null=>false
end
end
defself.down
drop_table:contacts
end
end
现在可以使用Migration功能了,在项目的目录下运行如下的Rake命令:
%>rakedb:migrate
现在登陆MySQL数据库中,可以看到,contacts表已经创建好了。那么,如果想撤消刚才的创建要怎么办呢?要回滚上面的操作可以使用VERSINO选项。因为数据移植功能的工作原理与版本控制工具很相似,你可以将数据库回滚到一个早期的版本。版本号是由数据移植脚本所提供的数字来确认的:
%>rakedb:migrateVERSION=0
再次登陆MySQL数据库,可以看到contacts表已经删除掉了。此外,如果想进行其它一些更加复杂的操作时,自然而然想到通过创建另一个migrations。例如,想另外创建一张表,或修改字段的数据类型等。可能在项目的目录下运行如下的代码来创建一个新的migration文件:
来源:豆豆网转载 作者:IT168 sterning 责编:豆豆技术应用