web-dev-qa-db-ja.com

v4.0.0以降、方言を明示的に提供する必要があります

PostgreSQLデータベースを使用するNodeJSプロジェクトに取り組んでいます。データベースへの移行を実装しようとしています。また、Sequelizeを使用します。移行フォルダーと設定をセットアップした後、db:migrateの実行中にエラーがスローされます

エラーは次のとおりです。「v4.0.0以降では、方言を明示的に指定する必要があります」

7

私の解決策は、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'
 }
}  
7
JPero

npm serverを実行する前に.env変数を設定していない場合

そのエラーが発生する可能性があります。そのため、変更のためにアプリを再起動するたびに。再度エクスポートする必要があります

export DATABASE_URL=<your-db-url>
0
Delino

方言を設定に追加するのを忘れましたか?参照: http://docs.sequelizejs.com/manual/tutorial/migrations.html

0
Napinator

同じエラーが発生し、コードにこの間​​違いがありました。

  title: {
    type: Sequelize,
    allowNull: false,
  },

これで私のコードを変更し、問題が解決しました:

  title: {
    type: Sequelize.STRING,
    allowNull: false,
  },
0
Murat Ersin

設定ファイル(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'
  }
}
0