Judith
(Judith Meyer)
1
こんにちは、
最新のアップグレード(バージョン 6 から 7 へ)を実行した際、重複したユーザー名が原因で rake db:migrate が失敗しました。Linux コマンドラインにはあまり慣れていないため、これを修正するために Rails コンソールに入ろうとしましたが、データベースに接続できないためコンソールが起動しませんでした。その後、Google で検索し /etc/init.d/postgresql restart を試みましたが、以下のエラーが発生しました:
[....] PostgreSQL 12 データベースサーバーを再起動中: main[....]
エラー: /usr/lib/postgresql/12/bin/pg_ctl /usr/lib/postgresql/12/bin/pg_ctl start -D /shared/postgres_data -l /var/log/postgresql/postgresql-12-main.log -s -o -c config_file="/etc/postgresql/12/main/postgresql.conf" がステータス 1 で終了しました: 2021-03-08 20:19:10.354 UTC [763]
FATAL: データベースファイルがサーバーと互換性がありません 2021-03-08 20:19:10.354 UTC [763]
DETAIL: データディレクトリは PostgreSQL バージョン 13 で初期化されましたが、これはこのバージョン 12.3 (Debian 12.3-1.pgdg100+1) と互換性がありません。p[FAIL: サーバーを起動できませんでした。ログ出力を確認してください。... 失敗しました!
失敗しました!
その後、/etc/init.d/postgresql restart version 12.3 を試みましたが、エラーは表示されなかったものの、他のメッセージも出ませんでした。それでも、psql にログインすることができません(少なくともこのフォーラムで見つけた sudo -u postgres psql discourse は使えません)。
サーバーを復元する方法をご教示いただけますでしょうか?また、なぜ最新のアップグレードでこれほど大きなエラーが発生したのでしょうか?私は 30 分インストールを使用しており、すべてが可能な限り標準的な設定になっています。また、修正を依頼するために報酬を支払うことも可能です。
sam
(Sam Saffron)
2
@pfaffman はこの種のサポートを専門としていますので、彼に連絡してみてください。
正確なエラーメッセージはありますか?少しスクロールが必要かもしれませんが、以下の点について知りたいです。
- 失敗したマイグレーションの名前
- 失敗の原因となったステートメント
pfaffman
(Jay Pfaffman)
3
途中、大文字小文字が異なるユーザー名を許容するバグが存在しましたが、その後修正され、そのようなことが起きないようになりました。
古いコンテナを起動して UX を通じて修正できるかもしれません。
しかし、しばらくコマンドラインでのアップグレードを行っていない場合は、さらに複雑になるデータベースのアップグレードも必要となります。
問題がそれ以上深刻でなければ、明日の午前(太平洋時間)に修正いたします:Redirecting…
もし今夜中に完了させるために追加料金を支払いたい場合は、すぐに Jay@literatecomputing.com までメールしてください。少なくともサービスを復旧させることができるかもしれません。
Judith
(Judith Meyer)
4
Webインターフェースからの出力は以下の通りです:
*** しばらくお待ちください。次のステップには時間がかかる場合があります ***
********************************************************
メモリを解放するためにUnicornをサイクリング中
Unicornを再起動中 pid: 46
Unicornのリロードを待機中。
Unicornのリロードを待機中..
Unicornのリロードを待機中...
Unicornのリロードを待機中....
Unicornのリロードを待機中.....
Unicornのリロードを待機中......
Unicornのリロードを待機中.......
Unicornのリロードを待機中........
Unicornのリロードを待機中.........
Unicornのリロードを待機中..........
Unicornのリロードを待機中...........
Unicornのリロードを待機中............
メモリを解放するために3つのUnicornワーカーを停止中
メモリを回復するためにジョブキューを停止中、マスターpidは10397
$ cd /var/www/discourse && git fetch --tags --force && git reset --hard HEAD@{upstream}
From https://github.com/discourse/discourse
t [tag update] latest-release -> latest-release
* [new tag] v2.5.6 -> v2.5.6
ファイルをチェックアウト中: 87% (2225/2539)
ファイルをチェックアウト中: 88% (2235/2539)
ファイルをチェックアウト中: 89% (2260/2539)
ファイルをチェックアウト中: 90% (2286/2539)
ファイルをチェックアウト中: 91% (2311/2539)
ファイルをチェックアウト中: 92% (2336/2539)
ファイルをチェックアウト中: 93% (2362/2539)
ファイルをチェックアウト中: 94% (2387/2539)
ファイルをチェックアウト中: 95% (2413/2539)
ファイルをチェックアウト中: 96% (2438/2539)
ファイルをチェックアウト中: 97% (2463/2539)
ファイルをチェックアウト中: 98% (2489/2539)
ファイルをチェックアウト中: 99% (2514/2539)
ファイルをチェックアウト中: 100% (2539/2539)
ファイルをチェックアウト中: 100% (2539/2539), 完了.
HEADは現在 0da649e4fa DEV: tagsテンプレートに新しいプラグインアウトレットを追加 (#12302)
$ bundle install --deployment --jobs 4 --without test development
[非推奨] `--deployment`フラグは非推奨です。これはbundlerの呼び出し間で記憶されることを前提としていますが、将来のバージョンではbundlerはこれを行わなくなります。代わりに `bundle config set deployment 'true'` を使用し、このフラグの使用を停止してください。
[非推奨] `--without`フラグは非推奨です。これはbundlerの呼び出し間で記憶されることを前提としていますが、将来のバージョンではbundlerはこれを行わなくなります。代わりに `bundle config set without 'test development'` を使用し、このフラグの使用を停止してください。
警告: 実行中のBundlerのバージョン (2.1.4) は、lockfileを作成したバージョン (2.2.7) より古いです。`gem install bundler:2.2.7` を実行して、lockfileを作成したバージョンにアップグレードすることをお勧めします。
https://rubygems.org/ からgemメタデータを取得中............
https://github.com/discourse/mail.git から取得中
rake 13.0.3 を取得中
rake 13.0.3 をインストール中
concurrent-ruby 1.1.8 を取得中
minitest 5.14.4 を取得中
thread_safe 0.3.6 を使用中
zeitwerk 2.4.2 を取得中
zeitwerk 2.4.2 をインストール中
minitest 5.14.4 をインストール中
concurrent-ruby 1.1.8 をインストール中
builder 3.2.4 を使用中
erubi 1.10.0 を使用中
racc 1.5.2 を取得中
crass 1.0.6 を使用中
rack 2.2.3 を使用中
mini_mime 1.0.2 を使用中
public_suffix 4.0.6 を使用中
aws-eventstream 1.1.1 を取得中
racc 1.5.2 をネイティブ拡張とともにインストール中
aws-eventstream 1.1.1 をインストール中
aws-partitions 1.390.0 を使用中
jmespath 1.4.0 を使用中
ember-source 2.18.2 を使用中
execjs 2.7.0 を使用中
msgpack 1.4.2 を取得中
msgpack 1.4.2 をネイティブ拡張とともにインストール中
bundler 2.1.4 を使用中
byebug 11.1.3 を使用中
cbor 0.5.9.6 を使用中
chunky_png 1.4.0 を取得中
chunky_png 1.4.0 をインストール中
coderay 1.1.3 を使用中
colored2 3.1.2 を使用中
connection_pool 2.2.3 を使用中
cppjieba_rb 0.3.3 を使用中
diffy 3.4.0 を使用中
method_source 1.0.0 を使用中
openssl 2.2.0 を取得中
thor 1.1.0 を取得中
discourse-ember-source 3.12.2.2 を使用中
discourse-fonts 0.0.7 を取得中
thor 1.1.0 をインストール中
openssl 2.2.0 をネイティブ拡張とともにインストール中
exifr 1.3.9 を使用中
fspath 3.1.2 を使用中
image_size 1.5.0 を使用中
in_threads 1.5.4 を使用中
progress 3.5.2 を使用中
email_reply_trimmer 0.1.13 を使用中
excon 0.79.0 を取得中
excon 0.79.0 をインストール中
discourse-fonts 0.0.7 をインストール中
multipart-post 2.1.1 を使用中
faraday-net_http 1.0.1 を取得中
ruby2_keywords 0.0.4 を取得中
fast_blank 1.0.0 を使用中
fast_xs 0.8.0 を使用中
fastimage 2.2.3 を取得中
ruby2_keywords 0.0.4 をインストール中
faraday-net_http 1.0.1 をインストール中
fastimage 2.2.3 をインストール中
ffi 1.15.0 を取得中
gc_tracer 1.5.1 を使用中
guess_html_encoding 0.0.11 を使用中
hashie 4.1.0 を使用中
highline 2.0.3 を使用中
hkdf 0.3.0 を使用中
htmlentities 4.3.4 を使用中
http_accept_language 2.1.1 を使用中
json 2.5.1 を取得中
jwt 2.2.2 を使用中
kgio 2.11.3 を使用中
libv8 8.4.255.0 (x86_64-linux) を使用中
logstash-event 1.2.02 を使用中
logster 2.9.6 を取得中
json 2.5.1 をネイティブ拡張とともにインストール中
logster 2.9.6 をインストール中
ffi 1.15.0 をネイティブ拡張とともにインストール中
lru_redux 1.1.0 を使用中
lz4-ruby 0.3.3 を使用中
maxminddb 0.1.22 を使用中
memory_profiler 1.0.0 を取得中
memory_profiler 1.0.0 をインストール中
redis 4.2.5 を使用中
multi_json 1.15.0 を使用中
multi_xml 0.6.0 を使用中
mustache 1.1.1 を使用中
mini_sql 1.0.1 を取得中
nio4r 2.5.7 を取得中
mini_sql 1.0.1 をインストール中
nio4r 2.5.7 をネイティブ拡張とともにインストール中
oauth 0.5.5 を取得中
oj 3.11.2 を取得中
oauth 0.5.5 をインストール中
oj 3.11.2 をネイティブ拡張とともにインストール中
optimist 3.0.1 を使用中
pg 1.2.3 を使用中
r2 0.2.7 を使用中
raindrops 0.19.1 を使用中
rchardet 1.8.0 を使用中
rinku 2.0.6 を使用中
rotp 6.2.0 を使用中
rqrcode_core 0.2.0 を取得中
rtlit 0.0.5 を使用中
rubyzip 2.3.0 を使用中
tilt 2.0.10 を使用中
sshkey 2.0.0 を使用中
stackprof 0.2.16 を使用中
unf_ext 0.0.7.7 を使用中
xorcist 1.1.2 を使用中
rqrcode_core 0.2.0 をインストール中
rack-test 1.1.0 を使用中
https://github.com/discourse/mail.git から mail 2.8.0.edge を使用中 (master@5b700fc)
tzinfo 1.2.9 を取得中
addressable 2.7.0 を使用中
request_store 1.5.0 を使用中
message_bus 3.3.4 を使用中
rack-mini-profiler 2.3.1 を取得中
rack-protection 2.1.0 を使用中
aws-sigv4 1.2.2 を使用中
barber 0.12.2 を使用中
ember-data-source 3.0.2 を使用中
uglifier 4.2.0 を使用中
i18n 1.8.9 を取得中
i18n 1.8.9 をインストール中
tzinfo 1.2.9 をインストール中
rack-mini-profiler 2.3.1 をインストール中
sprockets 3.7.2 を使用中
bootsnap 1.7.2 を取得中
bootsnap 1.7.2 をネイティブ拡張とともにインストール中
pry 0.13.1 を使用中
discourse_image_optim 0.26.2 を使用中
nokogiri 1.11.1 (x86_64-linux) を取得中
openssl-signature_algorithm 1.1.1 を取得中
faraday 1.3.0 を取得中
openssl-signature_algorithm 1.1.1 をインストール中
faraday 1.3.0 をインストール中
omniauth 1.9.1 を使用中
logstash-logger 0.26.1 を使用中
mini_racer 0.3.1 を使用中
webpush 1.1.0 を使用中
sidekiq 6.1.3 を取得中
sidekiq 6.1.3 をインストール中
redis-namespace 1.8.1 を取得中
nokogiri 1.11.1 (x86_64-linux) をインストール中
redis-namespace 1.8.1 をインストール中
mini_suffix 0.3.2 を取得中
mini_suffix 0.3.2 をインストール中
sassc 2.0.1 を使用中
rbtrace 0.4.14 を使用中
unicorn 5.8.0 を取得中
puma 5.2.2 を取得中
unicorn 5.8.0 をネイティブ拡張とともにインストール中
puma 5.2.2 をネイティブ拡張とともにインストール中
unf 0.1.4 を使用中
rqrcode 1.2.0 を取得中
css_parser 1.9.0 を取得中
aws-sdk-core 3.109.2 を使用中
ember-handlebars-template 0.8.0 を使用中
pry-byebug 3.9.0 を使用中
pry-rails 0.3.9 を使用中
activesupport 6.0.3.5 を取得中
css_parser 1.9.0 をインストール中
rqrcode 1.2.0 をインストール中
activesupport 6.0.3.5 をインストール中
cose 1.2.0 を使用中
omniauth-oauth 1.2.0 を取得中
omniauth-oauth 1.2.0 をインストール中
oauth2 1.4.4 を使用中
mini_scheduler 0.13.0 を取得中
loofah 2.9.0 を取得中
mini_scheduler 0.13.0 をインストール中
loofah 2.9.0 をインストール中
nokogumbo 2.0.4 を取得中
ruby-readability 0.7.0 を使用中
aws-sdk-kms 1.39.0 を使用中
aws-sdk-sns 1.35.0 を使用中
omniauth-oauth2 1.7.1 を取得中
nokogumbo 2.0.4 をネイティブ拡張とともにインストール中
omniauth-oauth2 1.7.1 をインストール中
omniauth-twitter 1.4.0 を使用中
rails-html-sanitizer 1.3.0 を使用中
aws-sdk-s3 1.83.2 を使用中
omniauth-facebook 8.0.0 を使用中
omniauth-github 1.4.0 を使用中
omniauth-google-oauth2 0.8.1 を取得中
omniauth-google-oauth2 0.8.1 をインストール中
rails-dom-testing 2.0.3 を使用中
globalid 0.4.2 を使用中
actionview 6.0.3.5 を取得中
activemodel 6.0.3.5 を取得中
activejob 6.0.3.5 を取得中
activejob 6.0.3.5 をインストール中
activemodel 6.0.3.5 をインストール中
actionview 6.0.3.5 をインストール中
sanitize 5.2.3 を取得中
sanitize 5.2.3 をインストール中
active_model_serializers 0.8.4 を使用中
activerecord 6.0.3.5 を取得中
onebox 2.2.6 を取得中
activerecord 6.0.3.5 をインストール中
onebox 2.2.6 をインストール中
actionpack 6.0.3.5 を取得中
actionpack 6.0.3.5 をインストール中
actionview_precompiler 0.2.3 を使用中
railties 6.0.3.5 を取得中
actionmailer 6.0.3.5 を取得中
actionmailer 6.0.3.5 をインストール中
railties 6.0.3.5 をインストール中
sprockets-rails 3.2.2 を使用中
seed-fu 2.3.9 を使用中
jquery-rails 4.4.0 を使用中
lograge 0.11.2 を使用中
rails_failover 0.6.5 を取得中
rails_multisite 2.5.0 を使用中
sassc-rails 2.1.2 を使用中
discourse-ember-rails 0.18.6 を使用中
rails_failover 0.6.5 をインストール中
Bundle完了! 124のGemfile依存関係、162のgemがインストールされました。
testおよびdevelopmentグループのgemはインストールされませんでした。
Bundled gemsは `./vendor/bundle` にインストールされます。
$ bundle exec rake plugin:pull_compatible_all
discourse-legal-tools はすでに最新互換バージョンです
docker_manager はすでに最新互換バージョンです
$ SKIP_POST_DEPLOYMENT_MIGRATIONS=1 bundle exec rake multisite:migrate
--------------------------------------------------------------------------------
1件のマイグレーションが失敗しました!
defaultのマイグレーションに失敗しました
#<StandardError: エラーが発生しました。このマイグレーションおよびそれ以降のマイグレーションはキャンセルされました:
PG::UniqueViolation: ERROR: 重複するキー値が一意制約 "index_users_on_username" に違反しています
DETAIL: キー (username)=(Martina_S) はすでに存在します。
>
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.3.1/lib/patches/db/pg.rb:110:in `exec'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.3.1/lib/patches/db/pg.rb:110:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/postgresql/database_statements.rb:92:in `block (2 levels) in execute'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.5/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.5/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.5/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/postgresql/database_statements.rb:91:in `block in execute'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/abstract_adapter.rb:722:in `block (2 levels) in log'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.5/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.5/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.5/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.5/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.5/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/abstract_adapter.rb:721:in `block in log'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.5/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/abstract_adapter.rb:712:in `log'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/postgresql/database_statements.rb:90:in `execute'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:890:in `block in method_missing'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:858:in `block in say_with_time'
/usr/local/lib/ruby/2.6.0/benchmark.rb:293:in `measure'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:858:in `say_with_time'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:879:in `method_missing'
/var/www/discourse/db/migrate/20210120125607_rename_english_locale.rb:17:in `rename_locale'
/var/www/discourse/db/migrate/20210120125607_rename_english_locale.rb:6:in `up'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:831:in `exec_migration'
/var/www/discourse/lib/freedom_patches/schema_migration_details.rb:9:in `block in exec_migration'
/usr/local/lib/ruby/2.6.0/benchmark.rb:293:in `measure'
/var/www/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `exec_migration'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:812:in `block (2 levels) in migrate'
/usr/local/lib/ruby/2.6.0/benchmark.rb:293:in `measure'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:811:in `block in migrate'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:471:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:810:in `migrate'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:1002:in `migrate'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:1310:in `block in execute_migration_in_transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:1361:in `block in ddl_transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `block in transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/abstract/transaction.rb:280:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.5/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.5/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.5/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.5/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.5/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/abstract/transaction.rb:278:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/transactions.rb:212:in `transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:1361:in `ddl_transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:1309:in `execute_migration_in_transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:1281:in `block in migrate_without_lock'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:1280:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:1280:in `migrate_without_lock'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:1229:in `block in migrate'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:1382:in `with_advisory_lock'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:1229:in `migrate'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:1061:in `up'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:1036:in `migrate'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.5/lib/active_record/tasks/database_tasks.rb:238:in `migrate'
/var/www/discourse/lib/tasks/db.rake:184:in `block (2 levels) in <main>'
/var/www/discourse/lib/tasks/db.rake:148:in `block (3 levels) in execute_concurently'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.5.0/lib/rails_multisite/connection_management.rb:76:in `with_connection'
/var/www/discourse/lib/tasks/db.rake:146:in `block (2 levels) in execute_concurently'
Multisite migratorは1スレッドを使用して実行されています
defaultをマイグレーション中
== 20201117212328 SetCategorySlugToLower: マイグレーション中 ===========================
-- remove_index(:categories, {:name=>"unique_index_categories_on_slug"})
-> 0.0069秒
-- execute("UPDATE categories SET slug = LOWER(slug)")
-> 0.0196秒
-- add_index(:categories, "COALESCE(parent_category_id, -1), LOWER(slug)", {:name=>"unique_index_categories_on_slug", :where=>"slug != ''", :unique=>true})
-> 0.0138秒
== 20201117212328 SetCategorySlugToLower: マイグレーション完了 (0.0528秒) ==================
== 20201210151635 CreateDoNotDisturbTimings: マイグレーション中 ========================
-- create_table(:do_not_disturb_timings)
-> 0.0192秒
-- add_index(:do_not_disturb_timings, [:user_id], {:unique=>false})
-> 0.0039秒
-- add_index(:do_not_disturb_timings, [:starts_at], {:unique=>false})
-> 0.0029秒
-- add_index(:do_not_disturb_timings, [:ends_at], {:unique=>false})
-> 0.0026秒
== 20201210151635 CreateDoNotDisturbTimings: マイグレーション完了 (0.0296秒) ===============
== 20201218000000 RemoveFlagWebHooks: マイグレーション中 ===============================
-- execute("DELETE FROM web_hook_event_types_hooks\nWHERE web_hook_event_type_id = 7\n")
-> 0.0005秒
-- execute("DELETE FROM web_hook_event_types\nWHERE id = 7\n")
-> 0.0004秒
== 20201218000000 RemoveFlagWebHooks: マイグレーション完了 (0.0016秒) ======================
== 20201218000001 RemoveQueuedPostWebHooks: マイグレーション中 =========================
-- execute("DELETE FROM web_hook_event_types_hooks\nWHERE web_hook_event_type_id = 8\n")
-> 0.0002秒
-- execute("DELETE FROM web_hook_event_types\nWHERE id = 8\n")
-> 0.0002秒
== 20201218000001 RemoveQueuedPostWebHooks: マイグレーション完了 (0.0011秒) ================
== 20201229031635 AddUserProfileIndexes: マイグレーション中 ============================
-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_topic_links_on_user_and_clicks\nON topic_links(user_id, clicks DESC, created_at DESC)\nWHERE (NOT reflection and NOT quote and NOT internal)\n")
-> 0.2598秒
-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_posts_user_and_likes\nON posts(user_id, like_count desc, created_at desc)\nWHERE post_number > 1\n")
-> 0.7620秒
== 20201229031635 AddUserProfileIndexes: マイグレーション完了 (1.0231秒) ===================
== 20210105165605 AddProcessedToNotifications: マイグレーション中 ======================
== 20210105165605 AddProcessedToNotifications: マイグレーション完了 (0.0007秒) =============
== 20210106181418 CreateUserNotificationSchedules: マイグレーション中 ==================
-- create_table(:user_notification_schedules)
-> 0.0043秒
-- add_index(:user_notification_schedules, [:user_id])
-> 0.0027秒
-- add_index(:user_notification_schedules, [:enabled])
-> 0.0024秒
-- add_column(:do_not_disturb_timings, :scheduled, :boolean, {:default=>false})
-> 0.0008秒
-- add_index(:do_not_disturb_timings, [:scheduled])
-> 0.0024秒
== 20210106181418 CreateUserNotificationSchedules: マイグレーション完了 (0.0134秒) =========
== 20210107005832 AddImapMissingColumnToIncomingEmail: マイグレーション中 ==============
-- add_column(:incoming_emails, :imap_missing, :boolean, {:default=>false, :null=>false})
-> 0.0013秒
== 20210107005832 AddImapMissingColumnToIncomingEmail: マイグレーション完了 (0.0019秒) =====
== 20210111025920 AddRejectReasonToReviewables: マイグレーション中 =====================
-- add_column(:reviewables, :reject_reason, :text)
-> 0.0008秒
== 20210111025920 AddRejectReasonToReviewables: マイグレーション完了 (0.0015秒) ============
== 20210119005647 AddCreatedViaToIncomingEmail: マイグレーション中 =====================
-- add_column(:incoming_emails, :created_via, :integer, {:null=>true})
-> 0.0006秒
== 20210119005647 AddCreatedViaToIncomingEmail: マイグレーション完了 (0.0012秒) ============
== 20210120125607 RenameEnglishLocale: マイグレーション中 ==============================
-- execute("UPDATE users\nSET locale = 'en_GB'\nWHERE locale = 'en'\n")
-> 0.0107秒
-- execute("UPDATE site_settings\nSET value = 'en_GB'\nWHERE name = 'default_locale' AND value = 'en'\n")
-> 0.0007秒
-- execute("UPDATE translation_overrides\nSET locale = 'en_GB'\nWHERE locale = 'en'\n")
-> 0.0004秒
-- execute("UPDATE theme_translation_overrides\nSET locale = 'en_GB'\nWHERE locale = 'en'\n")
-> 0.0005秒
-- execute("UPDATE users\nSET locale = 'en'\nWHERE locale = 'en_US'\n")
Docker Manager: アップグレードに失敗しました
#<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:196:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:100:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in <main>'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `fork'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.3/lib/rails/commands/runner/runner_command.rb:42:in `perform'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.3/lib/rails/command/base.rb:69:in `perform'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.3/lib/rails/command.rb:46:in `invoke'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.3/lib/rails/commands.rb:18:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `block in require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:291:in `load_dependency'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `require'
bin/rails:17:in `<main>'
最初に停止されていた3つのUnicornワーカーを起動中
その後、SSH経由でアップデートを実行しました。これによりより堅牢になることを期待してのことです(2020年には数ヶ月間、Webインターフェースが何のアップデートも受け付けず、常にSSH経由で実行する必要がありました)。コマンドラインでアップデートコマンドを入力すると、いくつかのデータがダウンロードされ、最終的にrebuild appコマンドを実行するように指示されました。それを実行すると、同じエラーが発生しました。 surrounding lines(周囲の行)が同じだったかどうかは確認できませんし、コピーもしませんでしたが、データベースマイグレーションの途中でこの index_username_on_users の問題が発生していたことは確かです。
TL;DR: 出力を正しく解釈している場合、問題は RenameEnglishLocale マイグレーション内の execute("UPDATE users SET locale = 'en' WHERE locale = 'en_US'") コマンドで発生しました。
sam
(Sam Saffron)
5
このエラーは以前にも見たことがあります。users テーブルに内部破損が発生した場合に起こります。
何らかの理由で、テーブル内に重複する「user」レコードが存在してしまいます。これは以前のバージョン、アップグレード中、あるいは不意のシャットダウン時に混入してしまった可能性があります。なぜこのようなことが起こるのかは現在も正確にはわかりませんが、実際に発生したことはあります。
対処法は以下の 2 つがあります。
-
運が良ければ、./launcher start appを実行し、次に rails c を実行して、DB.query('select * from users where username='Martina_S') でクエリを実行し、最後の Martina_S というレコードを Martina_S1 のような名前に変更します。
-
運が悪ければアプリを起動できなくなります。その場合はデータコンテナを起動し、psql から上記の手順を実行する必要があります。
Judith
(Judith Meyer)
6
迅速なご返信ありがとうございます!データコンテナを起動するにはどうすればよいでしょうか? ./launcher start app を実行し、続けて rails c と入力しましたが、データベースが起動していないため Rails が開始されません。/etc/init.d/postgresql restart を試しましたが、最初の投稿でお見せしたエラーが発生しました。PostgreSQL のバージョンが互換性がないという内容のようです(Debian LTS は 12.x のみサポートしており、最新の Discourse アップグレードにより、データが 13.0 に移行されたようですが??)。SQL で修正しても構いません。私は Rails 開発者ですから。しかし、Linux コマンドライン上で PostgreSQL の更新が失敗したように見える問題をどのように修正すればよいのか、見当もつきません。
sam
(Sam Saffron)
7
サンプルディレクトリにあるデータコンテナの例を確認してください。
正しい場所を指し示すだけで、コンテナに入り、psql を実行できるようになります。
はい、すでにバージョン 13 にアップグレード済みです。
Judith
(Judith Meyer)
8
@pfaffman さんが修正しました。この方をぜひおすすめします 