锁定老帖子 主题:Migrations流水帐
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-07-14
还可以在migration文件里使用自定义helper,helper文件可以放到lib目录下
使用extend加载外部helper 附上一个添加移除外键的代码 初学rails,代码拙了点 module MigrationHelpers # Add foreign key for migrations # Usage: # * /db/migrate/xxxx_create_users.rb # class CreateUsers < ActiveRecord::Migration # extend MigrateionHelpers # def self.up # ... # add_foreign_key :users, :group_id :groups # end # def down.up # ... # remove_foreign_key :users, :group_id # end # end # def add_foreign_key(from_table, from_column, to_table, to_column = 'id') constraint_name = "fk_#{from_table}_#{from_column}" execute "ALTER TABLE #{from_table} ADD CONSTRAINT #{constraint_name} FOREIGN KEY (#{from_column}) REFERENCES #{to_table} (#{to_column})" end def remove_foreign_key(from_table, from_column) constraint_name = "fk_#{from_table}_#{from_column}" execute "ALTER TABLE #{from_table} DROP CONSTRAINT #{constraint_name}" end end |
|
返回顶楼 | |
发表时间:2009-08-14
再来补充一下这个贴子,发现下面的在开发阶段也用的很多:
db:migrate:down VERSION=9999999999 |
|
返回顶楼 | |
发表时间:2009-08-14
netfork 写道 再来补充一下这个贴子,发现下面的在开发阶段也用的很多:
db:migrate:down VERSION=9999999999 NetBeans真的是很绝! |
|
返回顶楼 | |
发表时间:2009-08-14
gokure 写道 还可以在migration文件里使用自定义helper,helper文件可以放到lib目录下
使用extend加载外部helper 附上一个添加移除外键的代码 初学rails,代码拙了点 module MigrationHelpers # Add foreign key for migrations # Usage: # * /db/migrate/xxxx_create_users.rb # class CreateUsers < ActiveRecord::Migration # extend MigrateionHelpers # def self.up # ... # add_foreign_key :users, :group_id :groups # end # def down.up # ... # remove_foreign_key :users, :group_id # end # end # def add_foreign_key(from_table, from_column, to_table, to_column = 'id') constraint_name = "fk_#{from_table}_#{from_column}" execute "ALTER TABLE #{from_table} ADD CONSTRAINT #{constraint_name} FOREIGN KEY (#{from_column}) REFERENCES #{to_table} (#{to_column})" end def remove_foreign_key(from_table, from_column) constraint_name = "fk_#{from_table}_#{from_column}" execute "ALTER TABLE #{from_table} DROP CONSTRAINT #{constraint_name}" end end 有两个问题: 1,rails 里需要自己指定外键吗? 2,你这样写在helper 里面和script/generate migration add_fk 比的好处在哪? |
|
返回顶楼 | |
发表时间:2009-08-14
netfork 写道 netfork 写道 再来补充一下这个贴子,发现下面的在开发阶段也用的很多:
db:migrate:down VERSION=9999999999 NetBeans真的是很绝! Netbeans 确实是功能强劲,不过一般都是在终端下执行rails命令行,netbeans专门用来写代码就好了. |
|
返回顶楼 | |
发表时间:2009-08-15
现在的做法都是把备用数据写成rake脚本,出现问题的时候直接drop掉db,再create,
保证数据库里面的数据是最干净的 |
|
返回顶楼 | |
发表时间:2009-09-14
学习了
我现在用一点测试数据,偶尔迁移下,用的命令是: dropdb XXX -U postgres createdb XXX -U postgres rake db:migrate |
|
返回顶楼 | |
发表时间:2009-09-15
对了,现在数据导出导入有什么较好的做法没,比如在dev时生成了一些数据,打算以后导入到production环境中用
|
|
返回顶楼 | |
发表时间:2009-09-15
如果数据还要.... 我的做法通常都是在数据库级别做...
mysql 下用dump还是很方便的.... |
|
返回顶楼 | |
发表时间:2009-09-15
呵呵..Rails guide做得不错...弥补了当年文档不够好(相对Django)的缺陷.... 写Rails guide有奖金哦...谁有兴趣试过?
|
|
返回顶楼 | |