PG::UndefinedTable: ОШИБКА: отношение "pg_range" не существует

Я следую руководству здесь:

При запуске bundle exec rake db:create возникает ошибка с сообщением:

[Warning] Discourse рекомендует использовать Ruby v3.1.3 или выше для разработки. Вы используете v2.7.6.
PG::UndefinedTable: ERROR: relation "pg_range" не существует
LINE 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
Не удалось создать базу данных 'discourse_development'. Пожалуйста, проверьте вашу конфигурацию.
rake aborted!
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "pg_range" не существует
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>'

Причина:
PG::UndefinedTable: ERROR: relation "pg_range" не существует
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>'
Задачи: TOP => db:create
(Полный трассировочный вывод можно получить, запустив задачу с флагом --trace)

Что мне делать?
Я использую WSL 2 и Ubuntu 18.04.5, а также PostgreSQL версии 9.2

Это очень старая версия.

В наше время вы должны использовать 13.x.

Ладно, я попробую обновить.

Не уверен, что это причина вашей проблемы, но это точно будет более совместимо :slight_smile:

Теперь у меня возникла следующая ошибка:

[Warning] Discourse рекомендует использовать Ruby версии 3.1.3 или выше. Вы используете версию 2.7.6.
PG::UndefinedTable: ERROR: relation "pg_range" не существует
LINE 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
Не удалось создать базу данных 'discourse_development'. Проверьте вашу конфигурацию.
rake aborted!
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "pg_range" не существует
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>'

Причина:
PG::UndefinedTable: ERROR: relation "pg_range" не существует
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>'
Задачи: TOP => db:create
(Полный трассировочный вывод можно получить, запустив задачу с флагом --trace)

Согласно этой ссылке на Stack Overflow, у вас либо старая, либо повреждённая база данных.

Как же мне создать новую? Я раньше никогда не использовал PostgreSQL.

Хм, теперь у меня другая ошибка:

[Warning] Discourse рекомендует разработку на Ruby v3.1.3 или выше. Вы используете v2.7.6.
Не удалось найти вашу базу данных: postgres. Она должна быть указана в файле конфигурации базы данных, расположенном по адресу config/database.yml.

Чтобы решить эту проблему:

- Создали ли вы базу данных для этого приложения или удалили её? Возможно, вам нужно создать базу данных.
- Изменилось ли имя базы данных? Проверьте, что в конфигурации database.yml указано правильное имя базы данных.

Чтобы создать базу данных, выполните:

        bin/rails db:create
Не удалось создать базу данных 'discourse_development'. Проверьте вашу конфигурацию.
rake aborted!
ActiveRecord::NoDatabaseError: Не удалось найти вашу базу данных: postgres. Она должна быть указана в файле конфигурации базы данных, расположенном по адресу config/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>'

Причина:
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>'
Задачи: TOP => db:create
(Полный трассировочный вывод можно получить, запустив задачу с флагом --trace)

Итак, я решил следовать этой инструкции:

После сообщения «Migrating database…» у меня возникает следующая ошибка:

Migrating database...
rake aborted!
Discourse::Utils::CommandError: /src/lib/discourse.rb:134:in `exec': mkdir: cannot create directory ‘/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>'
(See full trace by running task with --trace)

У меня всё ещё возникают проблемы с этим. Есть какие-нибудь решения?