在Rails中,我们可以创建数据库迁移来修改数据库列,例如add_column
。但我们也可以直接在db / migrate中编辑数据库文件。那么我们每次都要编写迁移而不是更改数据库文件吗?
提前致谢。
答案 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重建数据库或初始创建数据库迁移将破坏所有数据。需要迁移才能将增量更改部署到生产系统。在你的开发周期中,我不会使用它们。使用模拟,固定装置或工厂来测试/开发数据。