我有一个Rails-API应用程序,我将在很长一段时间后重新部署。该应用程序是非生产的,但我准备部署生产版本。我想基本上删除所有迁移文件并使用模式从头开始,这种方法有什么问题吗?假设我可以这样做,我需要将schema.rb更改为?这是一种常见做法吗?对我来说似乎很合理。
# what do I change the version param value to?
ActiveRecord::Schema.define(version: 20171129023538)
答案 0 :(得分:3)
迁移用于更新数据库或回滚到以前的版本。一旦在所有环境中运行迁移,它们就再也不会被查看了(除非你手动弄乱schema_migrations
表)。运行所有迁移后,数据库的当前状态位于db/schema.rb
(或db/structure.sql
),因此您需要schema.rb
才能从新数据库开始。
我倾向于每隔几个月清除旧的迁移,以减少混乱。
就版本而言,你可以不管它。只要它代表过去的一段时间(例如2017-11-29 02:35:38)并且它低于任何需要运行的迁移(这不适用于你的情况)删除它们然后它并不重要。
继续并清除所有迁移,它们已经反映在schema.rb
中,如果您真的需要它们,您可以随时将它们从修订控制中挖掘出来。