PG::UndefinedTable : ERREUR : la relation "pg_range" n'existe pas

Je suis le guide ici :

Lorsque j’exécute bundle exec rake db:create, il génère une erreur et dit :

[Warning] Discourse recommande de développer en utilisant Ruby v3.1.3 ou supérieur. Vous utilisez v2.7.6.
PG::UndefinedTable: ERROR :  la relation « pg_range » n'existe pas
LINE 3 : LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
Impossible de créer la base de données 'discourse_development'. Veuillez vérifier votre configuration.
rake aborted!
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR :  la relation « pg_range » n'existe pas
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 :  la relation « pg_range » n'existe pas
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
(Voir la trace complète en exécutant la tâche avec --trace)

Que dois-je faire ?
J’utilise WSL 2 et Ubuntu 18.04.5, et PostgreSQL version 9.2

C’est très vieux.
Vous devriez utiliser la version 13.x de nos jours.

2 « J'aime »

D’accord, je vais essayer de mettre à niveau.

1 « J'aime »

Pas certain que ce soit la source de votre problème, mais ce sera certainement plus compatible :slight_smile:

J’ai maintenant cette erreur :

[Warning] Discourse recommande de développer en utilisant Ruby v3.1.3 ou une version supérieure. Vous utilisez la v2.7.6.
PG::UndefinedTable: ERREUR : la relation « pg_range » n'existe pas
LIGNE 3 : LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
Impossible de créer la base de données 'discourse_development'. Veuillez vérifier votre configuration.
rake aborted!
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERREUR : la relation « pg_range » n'existe pas
LIGNE 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>'

Causé par :
PG::UndefinedTable: ERREUR : la relation « pg_range » n'existe pas
LIGNE 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>'
Tâches : TOP => db:create
(Voir la trace complète en exécutant la tâche avec --trace)

Selon ce lien SO, vous avez soit une base de données ancienne, soit une base de données corrompue.

Comment puis-je en créer un nouveau, alors ? Je n’ai jamais utilisé PostgreSQL auparavant.

Eh bien, j’obtiens maintenant une erreur différente :

[Warning] Discourse recommande de développer en utilisant Ruby v3.1.3 ou une version supérieure. Vous utilisez la v2.7.6.
Nous n'avons pas pu trouver votre base de données : postgres. Qui se trouve dans le fichier de configuration de la base de données situé à config/database.yml.

Pour résoudre ce problème :

- Avez-vous créé la base de données pour cette application, ou l'avez-vous supprimée ? Vous devrez peut-être créer votre base de données.
- Le nom de la base de données a-t-il changé ? Vérifiez que votre configuration database.yml contient le bon nom de base de données.

Pour créer votre base de données, exécutez :

        bin/rails db:create
Impossible de créer la base de données 'discourse_development'. Veuillez vérifier votre configuration.
rake aborted!
ActiveRecord::NoDatabaseError: Nous n'avons pas pu trouver votre base de données : postgres. Qui se trouve dans le fichier de configuration de la base de données situé à config/database.yml.

Pour résoudre ce problème :

- Avez-vous créé la base de données pour cette application, ou l'avez-vous supprimée ? Vous devrez peut-être créer votre base de données.
- Le nom de la base de données a-t-il changé ? Vérifiez que votre configuration database.yml contient le bon nom de base de données.

Pour créer votre base de données, exécutez :

        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 connexion au serveur sur le socket « /var/run/postgresql/.s.PGSQL.5432 » a échoué : Aucun fichier ou dossier de ce type
        Le serveur est-il en cours d'exécution localement et accepte-t-il les connexions sur ce 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
(Voir la trace complète en exécutant la tâche avec --trace)

J’ai donc décidé de suivre ce guide :

J’obtiens cette erreur après le message “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)

J’ai toujours des problèmes avec ça, des solutions ?