0
我已经在我的生产服务器上的数据库表中,我创建运行db:schema:load删除现有表并创建新的?如果是,如何不删除现有的表和数据?
RAILS_ENV=production rake db:schema:load
现在我已经创造了一些更多的迁移和正在运行分贝:模式:再次负载,但它会因为我放弃现有的表是在生产,我确实有数据呢?我可以在我的db/schema.rb文件中看到,我有
create_table“authentications”,:force => true do | t |
删除和创建表格看起来是非常危险的,有没有其他的方式来做到这一点?我正在使用postgresql
谢谢@Charles,以及我已经看到了schema.db文件,它说你如果在不同的服务器上创建相同的表格,那么你最好使用schema.db而不是db:migrate虽然我当然不能丢失数据。所以db:migrate只会创建那些没有创建的表?如何只运行一个特定的迁移只是为了更安全一方? – iCyborg 2013-04-11 12:52:17
迁移就像数据库结构的故事情节一样,以反映不同状态的数据库在不同的开发状态。他们不在那里填充你的数据库。如果你移动到另一台服务器,你应该只加载模式,然后使用yaml_db之类的东西将数据从旧数据库传输到新数据库。 – weltschmerz 2013-04-11 13:18:24
Right Charles,我的意思是说我在本地服务器上创建了2个迁移,现在我想在服务器上复制它,我可以将迁移文件放在服务器上并运行db:migrate或者运行db:schema:load,因为我读取那db:migrate可能会破坏事情,你更喜欢哪种方法? – iCyborg 2013-04-12 06:04:13