我的生产数据库缺少一些列。我怎样才能安全地恢复它们?

时间:2012-08-13 11:23:51

标签: ruby-on-rails rails-migrations

在对已经投入生产的Rails应用程序进行一些重大修改后,我将所有内容推送到服务器,运行迁移,然后发现了主要问题。

事实证明,迁移中我的生产数据库中尚未创建2个数据库列。当我查看我的迁移时,没有一个创建这些列。我猜我在某些时候使用git犯了一个错误并丢失了这些文件。

我想知道的是如何在我的生产数据库中安全地创建这些列。如果我只是创建一个新的迁移来创建这两个列,推送到生产并运行迁移,我认为一切都会有效,但是当这些迁移在我的开发数据库上运行时,这会导致问题吗?

2 个答案:

答案 0 :(得分:2)

尝试执行此操作Check if Column exist

创建新迁移并添加检查列是否存在,如果不存在则使用add_column(....)创建列。

这不会破坏您的开发以及生产代码,而使用相同git存储库的其他人也将受益而不是评论操作并在完成时取消注释

答案 1 :(得分:1)

是的,这会导致开发数据库出现问题,只需在开发数据库上运行rake db:migrate期间注释add_column命令,然后在该操作后取消注释。