在对已经投入生产的Rails应用程序进行一些重大修改后,我将所有内容推送到服务器,运行迁移,然后发现了主要问题。
事实证明,迁移中我的生产数据库中尚未创建2个数据库列。当我查看我的迁移时,没有一个创建这些列。我猜我在某些时候使用git犯了一个错误并丢失了这些文件。
我想知道的是如何在我的生产数据库中安全地创建这些列。如果我只是创建一个新的迁移来创建这两个列,推送到生产并运行迁移,我认为一切都会有效,但是当这些迁移在我的开发数据库上运行时,这会导致问题吗?
答案 0 :(得分:2)
尝试执行此操作Check if Column exist
创建新迁移并添加检查列是否存在,如果不存在则使用add_column(....)创建列。
这不会破坏您的开发以及生产代码,而使用相同git存储库的其他人也将受益而不是评论操作并在完成时取消注释
答案 1 :(得分:1)
是的,这会导致开发数据库出现问题,只需在开发数据库上运行rake db:migrate期间注释add_column命令,然后在该操作后取消注释。