PG::UndefinedTable: ERRO: a relação "pg_range" não existe

Estou seguindo o guia aqui:

Quando executo bundle exec rake db:create, ele simplesmente falha e diz:

[Warning] O Discourse recomenda o desenvolvimento usando Ruby v3.1.3 ou superior. Você está usando v2.7.6.
PG::UndefinedTable: ERRO:  relação "pg_range" não existe
LINE 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
Não foi possível criar o banco de dados 'discourse_development'. Por favor, verifique sua configuração.
rake abortou!
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERRO:  relação "pg_range" não existe
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>'

Causado por:
PG::UndefinedTable: ERRO:  relação "pg_range" não existe
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>'
Tarefas: TOP => db:create
(Veja o rastreamento completo executando a tarefa com --trace)

O que eu faço?
Estou usando WSL 2 e Ubuntu 18.04.5, e PostgreSQL versão 9.2

Isso é muito antigo.
Você deveria estar rodando a versão 13.x atualmente.

2 curtidas

Tudo bem, vou tentar fazer o upgrade.

1 curtida

Não sei se é a origem do seu problema, mas definitivamente será mais compatível :slight_smile:

Agora tenho este erro:

[Aviso] O Discourse recomenda o desenvolvimento usando Ruby v3.1.3 ou superior. Você está usando v2.7.6.
PG::UndefinedTable: ERRO: a relação "pg_range" não existe
LINHA 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
Não foi possível criar o banco de dados 'discourse_development'. Por favor, verifique sua configuração.
rake abortou!
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERRO: a relação "pg_range" não existe
LINHA 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>'

Causado por:
PG::UndefinedTable: ERRO: a relação "pg_range" não existe
LINHA 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>'
Tarefas: TOP => db:create
(Veja o rastreamento completo executando a tarefa com --trace)

De acordo com esse link do SO, você tem um banco de dados antigo ou corrompido.

Como eu crio um novo, então? Eu nunca usei o PostgreSQL antes.

Bem, agora estou recebendo um erro diferente:

[Aviso] O Discourse recomenda o desenvolvimento usando Ruby v3.1.3 ou superior. Você está usando v2.7.6.
Não conseguimos encontrar seu banco de dados: postgres. Que pode ser encontrado no arquivo de configuração do banco de dados localizado em config/database.yml.

Para resolver este problema:

- Você criou o banco de dados para este aplicativo ou o excluiu? Talvez você precise criar seu banco de dados.
- O nome do banco de dados mudou? Verifique se o arquivo de configuração database.yml tem o nome correto do banco de dados.

Para criar seu banco de dados, execute:

        bin/rails db:create
Não foi possível criar o banco de dados 'discourse_development'. Por favor, verifique sua configuração.
rake abortou!
ActiveRecord::NoDatabaseError: Não conseguimos encontrar seu banco de dados: postgres. Que pode ser encontrado no arquivo de configuração do banco de dados localizado em config/database.yml.

Para resolver este problema:

- Você criou o banco de dados para este aplicativo ou o excluiu? Talvez você precise criar seu banco de dados.
- O nome do banco de dados mudou? Verifique se o arquivo de configuração database.yml tem o nome correto do banco de dados.

Para criar seu banco de dados, execute:

        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>'

Causado por:
PG::ConnectionBad: falha ao conectar ao servidor no socket "/var/run/postgresql/.s.PGSQL.5432": Arquivo ou diretório inexistente
        O servidor está em execução localmente e aceitando conexões nesse socket?
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `load'
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `<main>'
Tarefas: TOP => db:create
(Veja o rastreamento completo executando a tarefa com --trace)

Então eu decidi seguir este guia:

Recebo este erro após a mensagem “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)

Ainda estou tendo problemas com isso, alguma solução?