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