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

Can I delete all migration files and start from scratch?

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

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

迁移用于更新您的数据库或回滚到以前的版本。一旦迁移在所有环境中完成 运行,就再也不会查看它们(当然,除非您手动弄乱 schema_migrations table)。一旦您的所有迁移都完成 运行,数据库的当前状态为 db/schema.rb(或 db/structure.sql),因此您只需要 schema.rb 就可以开始一个新的数据库。

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

就版本而言,你可以不用管它。只要它代表过去的时间(例如 2017-11-29 02:35:38)并且它低于任何需要 运行 的迁移(这不适用,因为你全部删除)那么它是什么并不重要。

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