PG::UndefinedTable: エラー: リレーション "pg_range" が存在しません

ガイドはこちらに従っています。

bundle exec rake db:create を実行すると、エラーが発生し、次のように表示されます。

[Warning] Discourse recommends developing using Ruby v3.1.3 or above. You are using v2.7.6.
PG::UndefinedTable: ERROR:  relation "pg_range" does not exist
LINE 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
Couldn't create 'discourse_development' database. Please check your configuration.
rake aborted!
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation "pg_range" does not exist
LINE 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `load'
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `<main>'

Caused by:
PG::UndefinedTable: ERROR:  relation "pg_range" does not exist
LINE 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `load'
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `<main>'
Tasks: TOP => db:create
(See full trace by running task with --trace)

どうすればよいですか?
WSL 2 と Ubuntu 18.04.5、PostgreSQL バージョン 9.2 を使用しています。

それは 非常に 古いです。
現在では 13.x を実行しているはずです。

「いいね!」 2

わかりました、アップグレードを試してみます。

「いいね!」 1

それが問題の原因かどうかはわかりませんが、間違いなく互換性が 向上 するでしょう :slight_smile:

現在、このエラーが発生しています。

[Warning] Discourse recommends developing using Ruby v3.1.3 or above. You are using v2.7.6.
PG::UndefinedTable: ERROR: relation "pg_range" does not exist
LINE 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
Couldn't create 'discourse_development' database. Please check your configuration.
rake aborted!
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "pg_range" does not exist
LINE 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `load'
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `<main>'

Caused by:
PG::UndefinedTable: ERROR: relation "pg_range" does not exist
LINE 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `load'
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `<main>'
Tasks: TOP => db:create
(See full trace by running task with --trace)

そのSOリンクによると、データベースが古いか破損しています。

では、新しいものを作成するにはどうすればよいですか? PostgreSQL を使用するのは初めてです。

さて、別のエラーが発生しました。

[Warning] Discourseでは、Ruby v3.1.3以降での開発を推奨しています。現在 v2.7.6 を使用しています。
データベースが見つかりませんでした: postgres。これは database.yml 設定ファイルにあります。

この問題を解決するには:

- このアプリのデータベースを作成しましたか、それとも削除しましたか?データベースを作成する必要があるかもしれません。
- データベース名が変更されましたか? database.yml 設定に正しいデータベース名が含まれていることを確認してください。

データベースを作成するには、次を実行します:

        bin/rails db:create
'discourse_development' データベースを作成できませんでした。設定を確認してください。
rake aborted!
ActiveRecord::NoDatabaseError: データベースが見つかりませんでした: postgres。これは database.yml 設定ファイルにあります。

この問題を解決するには:

- このアプリのデータベースを作成しましたか、それとも削除しましたか?データベースを作成する必要があるかもしれません。
- データベース名が変更されましたか? database.yml 設定に正しいデータベース名が含まれていることを確認してください。

データベースを作成するには、次を実行します:

        bin/rails db:create
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `load'
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `<main>'

Caused by:
PG::ConnectionBad: サーバーへの接続がソケット \"/var/run/postgresql/.s.PGSQL.5432\" で失敗しました: そのようなファイルまたはディレクトリはありません
        サーバーはローカルで実行されており、そのソケットで接続を受け入れていますか?
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `load'
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `<main>'
Tasks: TOP => db:create
(フルトレースを表示するには、--trace オプションを付けてタスクを実行してください)

ガイドに従ってみました。

「データベースの移行中」のメッセージの後に、次のエラーが発生します。

データベースの移行中...
rake aborted!
Discourse::Utils::CommandError: /src/lib/discourse.rb:134:in `exec': mkdir: ディレクトリ ‘/src/public/plugins/’ を作成できません: Permission denied
/src/lib/discourse.rb:168:in `execute_command'
/src/lib/discourse.rb:134:in `exec'
/src/lib/discourse.rb:30:in `execute_command'
/src/lib/plugin/instance.rb:727:in `activate!'
/src/lib/discourse.rb:337:in `block in activate_plugins!'
/src/lib/discourse.rb:334:in `each'
/src/lib/discourse.rb:334:in `activate_plugins!'
/src/config/application.rb:216:in `block in <class:Application>'
/src/lib/plugin.rb:6:in `initialization_guard'
/src/config/application.rb:216:in `<class:Application>'
/src/config/application.rb:75:in `<module:Discourse>'
/src/config/application.rb:74:in `<main>'
/home/discourse/.bundle/gems/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/home/discourse/.bundle/gems/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/src/Rakefile:7:in `<main>'
(タスクを --trace オプション付きで実行すると、完全なトレースが表示されます)

これについてまだ問題があります。何か解決策はありますか?