我过去5个月一直在构建应用程序,我即将发布Alpha。在那段时间里经历了很多变化,结果在数据库中有很多剩余的表和列不再被使用了。
我的问题是,由于应用程序中没有数据,我可以删除实际的迁移,然后重置数据库而不是创建新的迁移以删除表和列吗?或者我不知道会有什么缺点?
由于
答案 0 :(得分:1)
迁移,尽管可能很强大,但并不是权威来源 对于您的数据库架构。该角色属于db / schema.rb或 Active Record通过检查数据库生成的SQL文件。他们 不是为了编辑而设计的,它们只代表当前的状态 数据库。
部署新的实例不需要(并且容易出错) 通过重播整个迁移历史记录的应用程序。它简单得多 并且更快地加载到数据库中的当前描述 架构。
您似乎有点误解了迁移的角色,它们并不意味着要再次运行来设置您的数据库,该角色是schema.rb
填充命令
rake db:schema:load
我建议删除所有迁移,然后从db中删除不需要的表和列,然后就可以运行
rake db:migrate
将为您生成更新的schema.rb
文件,其中包含您想要的数据库版本。
答案 1 :(得分:-1)
这些迁移的优点是:使用多个人进行编码 - >轻松设置开发环境和共享数据库。
您可以将应用程序推送到任何环境,而不必关心数据库的状态。迁移将告诉你!
在你的情况下,它有点奇怪:你在一个项目上独自工作了5个月,你从来没有想过清理未使用的表或列!! ??我建议你:写下(在纸上)你真正需要的表和列,然后你有两个选择: