我可以删除所有迁移文件并从头开始吗?

时间:2017-12-04 18:36:17

标签: ruby-on-rails rails-migrations rails-api

我有一个Rails-API应用程序,我将在很长一段时间后重新部署。该应用程序是非生产的,但我准备部署生产版本。我想基本上删除所有迁移文件并使用模式从头开始,这种方法有什么问题吗?假设我可以这样做,我需要将schema.rb更改为?这是一种常见做法吗?对我来说似乎很合理。

# what do I change the version param value to?
ActiveRecord::Schema.define(version: 20171129023538)  

1 个答案:

答案 0 :(得分:3)

迁移用于更新数据库或回滚到以前的版本。一旦在所有环境中运行迁移,它们就再也不会被查看了(除非你手动弄乱schema_migrations表)。运行所有迁移后,数据库的当前状态位于db/schema.rb(或db/structure.sql),因此您需要schema.rb才能从新数据库开始。

我倾向于每隔几个月清除旧的迁移,以减少混乱。

就版本而言,你可以不管它。只要它代表过去的一段时间(例如2017-11-29 02:35:38)并且它低于任何需要运行的迁移(这不适用于你的情况)删除它们然后它并不重要。

继续并清除所有迁移,它们已经反映在schema.rb中,如果您真的需要它们,您可以随时将它们从修订控制中挖掘出来。