C'est probablement une erreur stupide mais je n'arrive pas à trouver une solution satisfaisante.
Lors de l'exécution de db.create_all()
, j'ai eu l'erreur suivante.
sqlalchemy.exc.OperationalError: (OperationalError) fe_sendauth: no password supplied None None
Mon lien de base de données est défini comme
'postgresql://localhost/db_name'
Cela a bien fonctionné sur mon Mac et Heroku, mais ce n'est pas OK sur Ubuntu (Digitalocean).
Des idées sur ce que je pourrais faire de mal?
Vous avez probablement juste besoin de supprimer "localhost" de votre chaîne de connexion:
'postgresql:///db_name'
Cela indique à psycopg2 d'utiliser des sockets de domaine Unix. Votre configuration par défaut utilisera "ident" afin que vous vous connectiez en tant qu'utilisateur exécutant le script. Dans la configuration par défaut, "md5" s'applique uniquement aux connexions TCP.
Le modèle d'URL doit être:
postgresql://user:password@localhost:5432/database_name
pip installer psycopg2
l'utilisateur doit être postgres ou tout autre utilisateur que vous avez créé et que vous avez l'intention d'utiliser
de même pour mySql ce serait:
mysql://user:pass@localhost:3306/database_name
installer pip mysql-python
Sur votre Mac, PostgreSQL a été configuré pour l'authentification trust
ou peer
pour les connexions depuis localhost.
Sur votre boîte Ubuntu, il est configuré pour md5
authentification pour les connexions depuis localhost.
Vous voudrez configurer un mot de passe ou changer le mode d'authentification. Voir pg_hba.conf
, et le guide Ubuntu pour PostgreSQL .