PG::UndefinedTable: ERROR: la relación "pg_range" no existe

Estoy siguiendo la guía aquí:

Cuando ejecuto bundle exec rake db:create simplemente falla y dice:

[Warning] Discourse recomienda desarrollar usando Ruby v3.1.3 o superior. Estás usando v2.7.6.
PG::UndefinedTable: ERROR:  la relación "pg_range" no existe
LINE 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
No se pudo crear la base de datos 'discourse_development'. Por favor, comprueba tu configuración.
rake aborted!
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  la relación "pg_range" no 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: ERROR:  la relación "pg_range" no 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>'
Tasks: TOP => db:create
(Ver el rastreo completo ejecutando la tarea con --trace)

¿Qué hago?
Estoy usando WSL 2 y Ubuntu 18.04.5, y PostgreSQL versión 9.2

Eso es muy antiguo.
Deberías estar ejecutando la versión 13.x hoy en día.

2 Me gusta

De acuerdo, intentaré actualizar.

1 me gusta

No estoy seguro de que sea la causa de tu problema, pero definitivamente será más compatible :slight_smile:

Ahora tengo este error:

[Advertencia] Discourse recomienda desarrollar usando Ruby v3.1.3 o superior. Estás usando v2.7.6.
PG::UndefinedTable: ERROR: la relación «pg_range» no existe
LÍNEA 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
No se pudo crear la base de datos 'discourse_development'. Por favor, comprueba tu configuración.
rake aborted!
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: la relación «pg_range» no existe
LÍNEA 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: ERROR: la relación «pg_range» no existe
LÍNEA 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>'
Tareas: TOP => db:create
(Ver el rastreo completo ejecutando la tarea con --trace)

Según ese enlace de SO, tienes una base de datos antigua o corrupta.

¿Cómo creo uno nuevo, entonces? Nunca antes había usado PostgreSQL.

Bueno, ahora estoy recibiendo un error diferente:

[Advertencia] Discourse recomienda desarrollar usando Ruby v3.1.3 o superior. Estás usando v2.7.6.
No pudimos encontrar tu base de datos: postgres. La cual se encuentra en el archivo de configuración de la base de datos ubicado en config/database.yml.

Para resolver este problema:

- ¿Creaste la base de datos para esta aplicación o la eliminaste? Es posible que necesites crear tu base de datos.
- ¿Ha cambiado el nombre de la base de datos? Comprueba que tu configuración de database.yml tenga el nombre de base de datos correcto.

Para crear tu base de datos, ejecuta:

        bin/rails db:create
No se pudo crear la base de datos 'discourse_development'. Por favor, comprueba tu configuración.
rake aborted!
ActiveRecord::NoDatabaseError: No pudimos encontrar tu base de datos: postgres. La cual se encuentra en el archivo de configuración de la base de datos ubicado en config/database.yml.

Para resolver este problema:

- ¿Creaste la base de datos para esta aplicación o la eliminaste? Es posible que necesites crear tu base de datos.
- ¿Ha cambiado el nombre de la base de datos? Comprueba que tu configuración de database.yml tenga el nombre de base de datos correcto.

Para crear tu base de datos, ejecuta:

        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: la conexión al servidor en el socket \"/var/run/postgresql/.s.PGSQL.5432\" falló: No existe tal archivo o directorio
        ¿Está el servidor ejecutándose localmente y aceptando conexiones en ese 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>'
Tasks: TOP => db:create
(Ver el trace completo ejecutando la tarea con --trace)

Así que decidí seguir esta guía:

Recibo este error después del mensaje “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)

Todavía tengo problemas con esto, ¿alguna solución?