PostgreSQLデータベースを使用するNodeJSプロジェクトに取り組んでいます。データベースへの移行を実装しようとしています。また、Sequelizeを使用します。移行フォルダーと設定をセットアップした後、db:migrateの実行中にエラーがスローされます
エラーは次のとおりです。「v4.0.0以降では、方言を明示的に指定する必要があります」
私の解決策は、NODE_ENV
変数。
echo $NODE_ENV
その変数に何も設定していない場合は、次のように設定してみてください。
export NODE_ENV=development
値isが存在する場合、設定ファイルにthat valueのエントリがあることを確認してください。私にとっては、local
を使用するのが好きです。だから私はこれに私の設定を更新する必要がありました:
{
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'
}
}
npm server
を実行する前に.env変数を設定していない場合
そのエラーが発生する可能性があります。そのため、変更のためにアプリを再起動するたびに。再度エクスポートする必要があります
export DATABASE_URL=<your-db-url>
方言を設定に追加するのを忘れましたか?参照: http://docs.sequelizejs.com/manual/tutorial/migrations.html
同じエラーが発生し、コードにこの間違いがありました。
title: {
type: Sequelize,
allowNull: false,
},
これで私のコードを変更し、問題が解決しました:
title: {
type: Sequelize.STRING,
allowNull: false,
},
設定ファイル(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'
}
}