>

배경

보일러 플레이트 익스프레스 애플리케이션을 만들고 있습니다. pg 및 sequelize를 사용하여 데이터베이스 연결을 구성했습니다. cli를 추가하고 sequlize db:migrate 를 실행하려고하면  이 오류가 발생합니다

ERROR: The dialect [object Object] is not supported. Supported dialects: mssql, mysql, postgres, and sqlite.

복제

새 특급 응용 프로그램을 생성하십시오. pg, pg-hstore, sequelize 및 sequelize-cli를 설치하십시오.

sequelize init 실행 .

sequelize init에서 작성된/config 경로에 config.js 파일을 추가하십시오.

config.js 파일에서 연결을 만듭니다.

sequelize-cli에 의해 생성 된 config.json 파일을 업데이트하십시오.

sequelize db:migrate 실행  

/config/config.js

const Sequelize = require('sequelize');
const { username, host, database, password, port } = require('../secrets/db');
const sequelize = new Sequelize(database, username, password, {
  host,
  port,
  dialect: 'postgres',
  operatorsAliases: false,
  pool: {
    max: 5,
    min: 0,
    acquire: 30000,
    idle: 10000
  }
});
module.exports = sequelize;

/config/config.js

{
  "development": {
    "username": "user",
    "password": "pass",
    "database": "db",
    "host": "host",
    "dialect": "postgres"
  },
  "test": {
    "username": "user",
    "password": "pass",
    "database": "db",
    "host": "host",
    "dialect": "postgres"
  },
  "production": {
    "username": "user",
    "password": "pass",
    "database": "db",
    "host": "host",
    "dialect": "postgres"
  }
}

문제

초기 마이그레이션이 실행될 것으로 예상하지만 대신 오류가 발생합니다.

ERROR: The dialect [object Object] is not supported. Supported dialects: mssql, mysql, postgres, and sqlite.

버전

Dialect: postgres 
Dialect version: "pg":7.4.3 
Sequelize version: 4.38.0
Sequelize-Cli version: 4.0.0

패키지 Json

"pg": "^7.4.3",
"pg-hstore": "^2.3.2",
"sequelize": "^4.38.0"

전 세계적으로 설치

npm install -g sequelize-cli

질문

이제 sequelize를 위해 주요 재 작성이 릴리스되었으므로 마이그레이션을 실행할 방언을 추가하는 올바른 방법은 무엇입니까?

내 연결이 제대로 작동한다는 점에 유의해야합니다. 문제없이 데이터베이스를 쿼리 할 수 ​​있습니다.  마이그레이션을 실행할 때 작동하지 않습니다.

sequelize-cli

  • 답변 # 1

    나는 같은 문제에 부딪쳤다. 변경해야 할 것이 몇 가지 있습니다. 먼저, 왜 당신이 2 config/config.js 을 가지고 있는지 잘 모르겠습니다  파일. 나는 두 번째 파일이 config.json 라고 가정합니다. . 이 문제가 발생하는 이유는

    const sequelize = new Sequelize(database, username, password, {
      host,
      port,
      dialect: 'postgres',
      operatorsAliases: false,
      pool: {
        max: 5,
        min: 0,
        acquire: 30000,
        idle: 10000
      }
    });
    
    
    이 코드 행은 sequlize-cli가 마이그레이션하는 것이 아니라 노드 서버가 db에 액세스하는 데 사용됩니다. 정확한 sequlize-cli 지침을 따라야합니다. 다음은 링크입니다 : instruction

    내 코드 : 와이즈 비즈

    config/db.js
    
    

    const {sequlize_cli} = require('../config.json'); module.exports = sequlize_cli;

    config.json
    
    
    내가 추측하는 요점은 { "sequlize_cli":{ "development":{ "username":"root", "password":"passowrd", "database":"monitor", "host":"127.0.0.1", "dialect": "postgres" }, "test": { "username":"root", "password":"passowrd", "database":"monitor", "host":"127.0.0.1", "dialect": "postgres" }, "production": { "username":"root", "password":"passowrd", "database":"monitor", "host":"127.0.0.1", "dialect": "postgres" } } } 를 내보내는 대신 json 객체를 직접 내보내는 것입니다.  목적. 또한 이것은 sequelize 의 문제입니다.  , 나는 mysql로 ​​테스트했는데, 귀하의 코드는 mysql과 완벽하게 작동합니다.

    postges

  • 이전 python - pytest-qt에서 클릭하여 버튼을 누른 후 창을 올바르게 여는 방법을 확인하는 방법
  • 다음 웹팩 4 - 별도의 파일로 css에서 scss