J'écrirai un résumé des solutions pour les retardataires sur la solution lorsqu'une erreur se produit lors de l'exécution de rails db: create.
windows 10 home ubuntu 20.04 LTS ruby 2.7.1 Rails 6.0.3 postgresql 11
$ rails db:create
FATAL: role "admin0" does not exist
Couldn't create 'taskleaf2_development' database. Please check your configuration.
rails aborted!
PG::ConnectionBad: FATAL: role "admin0" does not exist
/home/admin0/taskleaf2/bin/rails:9:in `<top (required)>'
/home/admin0/taskleaf2/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Tasks: TOP => db:create
(See full trace by running task with --trace)
Le point clé se situe-t-il cette fois autour de la 5e ligne à partir du haut?
J'avais rencontré une erreur similaire auparavant et l'avais déjà résolue, j'ai donc essayé la même méthode. https://teratail.com/questions/297341
$ yarn install
Cependant, même cela n'a pas pu être résolu.
Notez que l'erreur est PG :: ConnectionBad:. Cependant, la base de données doit fonctionner comme la commande suivante ...?
$ sudo service postgresql start
[sudo]mot de passe admin0:
* Starting PostgreSQL 11 database server [ OK ]
* Starting PostgreSQL 13 database server [ OK ]
J'ai décidé d'essayer de le démarrer par un autre moyen (ci-dessous).
$ sudo su - postgres
\q
Quand j'ai exécuté à nouveau rails db: create
, l'instruction d'erreur a changé.
$ rails db:create
WARNING: could not flush dirty data: Function not implemented
Created database 'taskleaf2_development'
WARNING: could not flush dirty data: Function not implemented
Created database 'taskleaf2_test'
Après cela, j'ai cherché avec cette phrase d'erreur
https://stackoverflow.com/questions/45437824/postgresql-warning-could-not-flush-dirty-data-function-not-implemented
Parce que cela semblait influencer
Une partie du contenu de / etc / postgresql / 11 / main / postgresql.conf
a été réécrite comme suit
fsync = off
data_sync_retry = true
Essayez d'exécuter à nouveau rails db: create
rails db:create
Database 'taskleaf2_development' already exists
Database 'taskleaf2_test' already exists
Apparemment, cela a réussi. Étant donné que le serveur a pu démarrer, on estime que cela a résolu le problème cette fois.
Recommended Posts