J'ai travaillé sur un projet NodeJS qui utilise la base de données PostgreSQL. J'essaie d'implémenter la migration vers la base de données. En outre, en utilisant Sequelize. Après avoir configuré le dossier de migration et la configuration, il génère une erreur lors de l'exécution de db: migrate
L'erreur est: "Le dialecte doit être explicitement fourni à partir de la v4.0.0"
La solution pour moi était basée sur ce que j'avais défini pour ma variable NODE_ENV
.
echo $NODE_ENV
Si vous n'avez rien défini pour cette variable, essayez de la définir comme suit:
export NODE_ENV=development
Si une valeur est présent, assurez-vous que vous avez une entrée dans votre fichier de configuration pour that value. Pour moi, j'aime utiliser local
. J'ai donc dû mettre à jour ma configuration pour ceci:
{
local: {
username: 'root',
password: null,
database: 'database_dev',
Host: '127.0.0.1',
dialect: 'postgres'
},
development: {
username: 'root',
password: null,
database: 'database_dev',
Host: '127.0.0.1',
dialect: 'postgres'
},
test: {
username: 'root',
password: null,
database: 'database_test',
Host: '127.0.0.1',
dialect: 'postgres'
},
production: {
username: 'root',
password: null,
database: 'database',
Host: '127.0.0.1',
dialect: 'postgres'
}
}
si vous n'avez pas configuré de variables .env avant d'exécuter votre npm server
Vous êtes susceptible de recevoir cette erreur. donc à chaque fois que vous redémarrez l'application pour modifications ..__, vous devrez exporter à nouveau
export DATABASE_URL=<your-db-url>
avez-vous oublié d'ajouter le dialecte à votre configuration? voir: http://docs.sequelizejs.com/manual/tutorial/migrations.html
J'ai eu la même erreur et j'ai vu cette erreur dans le code.
title: {
type: Sequelize,
allowNull: false,
},
J'ai changé mon code avec ceci et le problème est résolu:
title: {
type: Sequelize.STRING,
allowNull: false,
},
Vérifiez votre fichier de configuration (noms d'env)
{
development: {
username: 'root',
password: null,
database: 'database_development',
Host: '127.0.0.1',
dialect: 'mysql'
},
test: {
username: 'root',
password: null,
database: 'database_test',
Host: '127.0.0.1',
dialect: 'mysql'
},
production: {
username: 'root',
password: null,
database: 'database_production',
Host: '127.0.0.1',
dialect: 'mysql'
}
}