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