一、背景? ? ? ??
? ? ? ? 去年做GitLab數(shù)據(jù)遷移時,寫過一篇文章《GitLab的備份與還原》。后來發(fā)現(xiàn)新創(chuàng)建的項目沒問題,但對于遷移過來的項目,修改名稱等信息,或者刪除該項目時,會出現(xiàn)500錯誤,以為是系統(tǒng)問題,一直也查到解決辦法。
二、原因
? ? ? ? 前段時間再次搜索解決辦法,終于解決了,在這里記錄一下。
? ? ? ? 導致這樣的原因,了解到是db_key_base
參數(shù)出現(xiàn)了問題。db_key_base
是一個64位隨機字符串,它用于為應用程序生成安全的密鑰。原先的密鑰沒復制過來,導致修改原項目時驗證無法通過。
三、解決辦法
? ? ? ? 原先的GitLab早就刪除干凈了,原先的db_key_base自然也找不回來,只好重置所有的密鑰和token。
1、進入數(shù)據(jù)庫控制臺
命令行輸入:
gitlab-rails dbconsole
需要注意的是,在使用gitlab-rails dbconsole時,請務必非常小心。因為您將直接操作GitLab使用的數(shù)據(jù)庫,所以錯誤的SQL語句有可能導致數(shù)據(jù)丟失或損壞。?
2、重置SQL數(shù)據(jù)庫中的Token
?gitlab-psql -d gitlabhq_production
然后依次輸入一下命令?:
# 將所有項目的runners_token和runners_token_encrypted字段設置為null。
UPDATE projects SET runners_token = null, runners_token_encrypted = null;
# 將所有命名空間(例如用戶或組)的runners_token和runners_token_encrypted字段設置為null。
UPDATE namespaces SET runners_token = null, runners_token_encrypted = null;
# 將GitLab應用程序設置中的runners_registration_token_encrypted字段設置為null。
UPDATE application_settings SET runners_registration_token_encrypted = null;
然后輸入\q
或者exit
退出。
3、重啟GitLab
gitlab-ctl restart
至此整個Gitlab已經(jīng)恢復正常,原先的項目可以改名,也可以刪除了。
參考文章:文章來源:http://www.zghlxwxcb.cn/news/detail-732026.html
Gitlab數(shù)據(jù)遷移&在線升級后出現(xiàn)CI/CD頁面500錯誤問題 | Luck_zy文章來源地址http://www.zghlxwxcb.cn/news/detail-732026.html
到了這里,關于GitLab數(shù)據(jù)遷移后出現(xiàn)500錯誤的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!