我在运行最新升级时似乎遇到了问题,失败原因如下:
PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_users_on_username_lower"
DETAIL: Key (username_lower)=(scottie) already exists.
我尝试通过访问 Rails 控制台或直接操作 Postgres 数据库来删除该用户以进行恢复,但始终收到服务器未运行的错误。
以下是我在启动应用后尝试运行 rails 的输出:
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 3743 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
c744729efb7a5813699e2fe8fa46ab551352d45ada8dcb9204121508364f8438
** FAILED TO BOOTSTRAP ** 请向上滚动并查找更早的错误消息,可能不止一条。
./discourse-doctor 可能有助于诊断问题。
root@kForum:/var/discourse# ./launcher start app
starting up existing container
+ /usr/bin/docker start app
app
root@kForum:/var/discourse# ./launcher enter app
root@kForum-app:/var/www/discourse# rails c
bundler: failed to load command: pry (/var/www/discourse/vendor/bundle/ruby/2.7.0/bin/pry)
PG::ConnectionBad: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
以下是我尝试运行 postgres 的输出:
root@kForum:/var/discourse# ./launcher enter app
root@kForum-app:/var/www/discourse# su discourse
discourse@kForum-app:/var/www/discourse$ psql discourse
psql: error: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
discourse@kForum-app:/var/www/discourse$
我正在 DigitalOcean 上恢复之前的快照以回到正常工作状态,但奇怪(甚至令人担忧)的是,即使恢复了快照,网站似乎仍未恢复运行。该快照是在超过 24 小时前创建的,当时我知道论坛运行正常,因此这应该与我尝试的升级无关。
在我恢复的快照中,当我尝试停止/启动/重启应用时,看到的错误如下:
root@kForum:/var/discourse# ./launcher restart app
+ /usr/bin/docker stop -t 10 app
app
starting up existing container
+ /usr/bin/docker start app
Error response from daemon: container "a1023d05a7b4de25ded1aa69ad49caed9fa59d15fa8e8130d32db82934139e6b": already exists
Error: failed to start containers: app
root@kForum:/var/discourse#
最后,我运行了 discourse-doctor,这似乎是失败的相关部分?
Checking cluster versions ok
The source cluster was not shut down cleanly.
Failure, exiting
-------------------------------------------------------------------------------------
UPGRADE OF POSTGRES FAILED
Please visit https://meta.discourse.org/t/postgresql-13-update/172563 for support.
You can run ./launcher start app to restart your app in the meanwhile
FAILED
--------------------
Pups::ExecError: /root/upgrade_postgres failed with return #<Process::Status: pid 46 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params "/root/upgrade_postgres"
c98d1b076faed9b0c728cd944b3f2436afc9e266910b82a644c71fd80b42f073
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
==================== END REBUILD LOG ====================
Failed to rebuild app.
Checking your domain name . . .
Connection to forum.kirupa.com succeeded.
You should probably remove any non-standard plugins and rebuild.
Attempting to restart existing container. . .
starting up existing container
+ /usr/bin/docker start app
Error response from daemon: driver failed programming external connectivity on endpoint app (78a35e0f12e5af560bd1f991ead900fefd0c81570cc4582fe99aaa5e56b238e8): Error starting userland proxy: listen tcp 0.0.0.0:443: bind: address already in use
Error: failed to start containers: app
Failed to restart the container.
==================== PLUGINS ====================
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/discourse/discourse-solved.git
- git clone https://github.com/discourse/discourse-sitemap.git
No non-official plugins detected.
See https://github.com/discourse/discourse/blob/master/lib/plugin/metadata.rb for the official list.
========================================
Discourse version at forum.kirupa.com: NOT FOUND
Discourse version at localhost: NOT FOUND
对此情况有何看法?恢复论坛是我的首要目标,解决升级失败是次要目标。
谢谢,
Kirupa