在 Rails 中,我们可以创建数据库迁移来修改数据库列,例如add_column
. 但是我们也可以直接编辑db/migrate中的数据库文件。那么我们是否每次都写迁移而不是更改数据库文件?
提前致谢。
在 Rails 中,我们可以创建数据库迁移来修改数据库列,例如add_column
. 但是我们也可以直接编辑db/migrate中的数据库文件。那么我们是否每次都写迁移而不是更改数据库文件?
提前致谢。
db/migrate 中的文件是generate migration
命令生成的文件
您可以使用该命令来加快速度,因为 Rails 更喜欢约定而不是配置。这是铁路的方式。
但是如果你想手动做一些事情或者做一些更复杂的事情,你可以手动编辑 db/migrate 中的文件,甚至添加新文件。之后,您必须运行rake db:migrate
命令将更改提交到数据库。
理论上,您可以将其视为拥有数百万行的生产数据库。每次您想更改或添加数据库时,您都想修改另一个文件并应用这些更改,以免丢失该数据。
如果您只是编辑一个 db/migrate 文件,例如从上周开始,首先它不会被拾取,bundle exec rake db:migrate
但您必须回滚这些更改,这会破坏数据。
因此,要在一行中回答问题,请继续添加迁移,即使是简单的更改。
从 schema.rb 或初始创建数据库迁移重建数据库将破坏您的所有数据。将增量更改部署到生产系统需要迁移。在您的开发周期中,我不会使用它们。为测试/开发数据使用模拟、固定装置或工厂。