0

在 Rails 中,我们可以创建数据库迁移来修改数据库列,例如add_column. 但是我们也可以直接编辑db/migrate中的数据库文件。那么我们是否每次都写迁移而不是更改数据库文件?

提前致谢。

4

3 回答 3

1

db/migrate 中的文件是generate migration命令生成的文件

您可以使用该命令来加快速度,因为 Rails 更喜欢约定而不是配置。这是铁路的方式。

但是如果你想手动做一些事情或者做一些更复杂的事情,你可以手动编辑 db/migrate 中的文件,甚至添加新文件。之后,您必须运行rake db:migrate命令将更改提交到数据库。

于 2012-09-29T00:04:46.723 回答
1

理论上,您可以将其视为拥有数百万行的生产数据库。每次您想更改或添加数据库时,您都想修改另一个文件并应用这些更改,以免丢失该数据。

如果您只是编辑一个 db/migrate 文件,例如从上周开始,首先它不会被拾取,bundle exec rake db:migrate但您必须回滚这些更改,这会破坏数据。

因此,要在一行中回答问题,请继续添加迁移,即使是简单的更改。

于 2012-09-29T00:11:29.507 回答
1

从 schema.rb 或初始创建数据库迁移重建数据库将破坏您的所有数据。将增量更改部署到生产系统需要迁移。在您的开发周期中,我不会使用它们。为测试/开发数据使用模拟、固定装置或工厂。

于 2012-09-29T00:28:15.367 回答