2016-07-30 1 views
0

postgresql 및 node.js를 사용하여 노드 익스프레스 애플리케이션을 만들었습니다. 나는 그것을 heroku에 넣기로 결정했다. 나는 heroku의 add-on을 사용하여 나의 postgresql 데이터베이스를 만들었다. 데이터베이스 (사용자 이름/비밀번호/URI 등)를 볼 수 있습니다.Node.js와 함께 heroku에 postgresql 테이블을 만들 수 없습니다.

heroku 앱을 ping 할 수 있지만 사용자를 만들려고 할 때 400 오류가 발생합니다. 로그를 확인했는데 테이블을 만들 수 없다는 문제가 있습니다.

여기 ORM을 사용하여 모델을 생성해야하는 my app.js가 있습니다.

var db = require('sequelize-connect'); 
// Database sequelize 
var connectionString; 
var username; 
var password; 
var database; 
if (process.env.NODE_ENV === 'development'){ 
    connectionString = global.localConnectionString; 
    database = global.nameDatabase_development; 
    username = global.usernameDatabase_development; 
    password = global.passwordDatabase_development; 
}else{ 
    connectionString = global.productionConnectionString; 
    database = global.nameDatabase_production; 
    username = global.usernameDatabase_production; 
    password = global.passwordDatabase_production; 
} 

var sequelize = new Sequelize(connectionString); 

// Model ORM configurations 
var discover = path.join(__dirname, 'models'); 
var matcher = function (file) { 
    return true; 
} 
var orm = new db(
    database, 
    username, 
    password, 
    { 
     dialect: 'postgres', 
     port: 5432, 
     force: true 
    }, 
    discover, 
    matcher 
); 

내 heroku 페이지에서 데이터베이스 이름/사용자 이름/암호를 얻었습니다. heroku에서 테이블을 수동으로 만들어야합니까? 나는 sequelize-connect가 그 용도로 사용 된 줄 알았습니까? 영웅으로 테이블을 만들려면 어떻게해야합니까?

답변

0

DB 마이그레이션은 사용중인 ORM과 아무 관련이 없으므로 직접 처리해야한다고 생각합니다. ORM은 SQL 데이터를보다 쉽게 ​​조작하고 코드를 읽을 수있게 해주는 도구 일뿐입니다.

일반적으로 ORM은 DB를 마이그레이션 할 수있는 몇 가지 스크립트를 제공합니다. 후편에서 내가 많이 사용하는 cli 레포를 확인할 수 있습니다.

또한, 당신은 당신은 따라서

here을 확인할 수 있습니다 을 Heroku가에 배포하는 과정에서 마이그레이션 스크립트를 추가해야하는 단계가

  1. 에게 Heroku Heroku가에 응용 프로그램을 배포 할 것 npm 의존성을 설치하기 시작합니다.
  2. heroku가 마이그레이션 스크립트를 실행하기 시작합니다. sequelize-CLI에서 db:migrate
  3. 마이그레이션 한 후, 당신에게 Heroku 응용 프로그램을 다시로드 (이것은 당신이 미스 무엇인가)
관련 문제