我们有大约100个数据库迁移文件。他们中的许多人进行了不可逆转的架构更改。稍后还有一些迁移可以更改或删除在早期迁移中创建的表。
我们正在直接从schema.rb文件创建新数据库,所以我们想知道是否有任何理由保留完整的迁移集?
我们将创建一个基于现有schema.rb。
的新迁移答案 0 :(得分:7)
是的,您提出的建议被视为最佳做法。
我已经使用旧版应用程序多次完成此操作。您希望将迁移备份到某个地方,直到您对一切都很满意为止,当然,这是应用程序维护的一个重要部分 - 如果您有大量旧迁移,则可能需要永远执行{{1或者让新的开发环境运行。
答案 1 :(得分:4)
我独家使用rake db:setup
和rake db:reset
(从不rake db:migrate
)在生产服务器或新开发机器上安装新数据库。这些命令已使用schema.rb
或structure.sql
来重新创建数据库。
也就是说,复制schema.rb
非常容易,将其用作新的起点并删除所有旧的迁移。
我更愿意将我的迁移用于历史目的,但这是一个品味问题。