Rails:为什么要使用数据库迁移?

时间:2012-09-29 00:01:41

标签: ruby-on-rails

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

提前致谢。

3 个答案:

答案 0 :(得分:1)

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

生成的文件

你可以使用这个命令加快速度,导致rails更喜欢约定优于配置。这是轨道方式。

但如果您想手动执行某些操作或执行更复杂的操作,则可以手动编辑db / migrate中的文件,甚至添加新文件。之后,您必须运行rake db:migrate命令将更改提交到db。

答案 1 :(得分:1)

从理论上讲,就像拥有数百万行的生产数据库一样。每次要更改或添加数据库时,都需要修改另一个文件并应用这些更改,以免丢失该数据。

如果你只是编辑一个db / migrate文件,比如说从上周开始,首先它不会被bundle exec rake db:migrate选中,但是你必须回滚那些破坏数据的更改。

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

答案 2 :(得分:1)

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