如何在不恢复备份的情况下摆脱迁移故障

时间:2018-03-22 20:23:57

标签: gitlab

如果由于数据库迁移不起作用而导致下一个主要版本的更新失败,那么我的选择是什么? (部分迁移已经到位了吗?

问题是备份都包含该列,我甚至不确定此问题何时开始。几个月前我做了一些备份恢复,当时看起来都很好,但现在我很确定那里出了问题。

我能想到; 1手动进入postgres删除列。然后尝试更新。 (怎么样?)。可能还有其他迁移问题。 2导出单个项目,重置为出厂设置并重新导入所有项目。这将取决于导出格式(如果它是一个sql转储我最终会在相同的情况下) 3希望专家阅读并帮助我: - )

因为这张票没有得到任何关注https://gitlab.com/gitlab-org/omnibus-gitlab/issues/3156我现在在这里试试运气。现在似乎我被困在gitlab / gitlab-ce:10.3.6。

1 个答案:

答案 0 :(得分:1)

我从来没有解决过这个问题(谢天谢地!)但是在GitLab文档中,他们在更新GitLab区域确实有一个关于从失败或部分升级中恢复的部分。 (它们似乎表明在从备份恢复后可能会发生这种情况,因此与您已完成多次备份恢复的语句相匹配)。

https://docs.gitlab.com/ee/update/restore_after_failure.html

他们说您可能需要多次(经过不同的迁移步骤)才能让自己回到想要的迁移成功前进的位置。

根据您在问题跟踪器中发布的日志,我看到它在迁移20171106171453时失败了,所以你克服第一个障碍的命令可能看起来像这样(注意不同的命令取决于Source或Omnibus安装):

(来源安装)
sudo -u git -H bundle exec rake gitlab:db:mark_migration_complete[20171106171453] RAILS_ENV=production

(Omnibus安装)
sudo gitlab-rake gitlab:db:mark_migration_complete[20171106171453]

同样,我以前从未这样做过,所以在尝试之前我会采取新的备份(因为在之前的情况下这样做效果很好,对吧?!),并在尝试之前彻底阅读他们的文档和警告。

祝你好运!