2016-06-19 2 views
1
var Sequelize = require('sequelize'); 
var sequelize = new Sequelize('database', 'username', 'password', { 
    host: 'localhost', 
    dialect: 'sqlite', 

    // SQLite only 
    storage: 'db.sqlite' 
}); 

var Driver = sequelize.define('driver', { 
    auth:  Sequelize.STRING, 
    name:  Sequelize.STRING, 
    phone:  Sequelize.INTEGER, 
    bank:  Sequelize.INTEGER, 
    idNo:  Sequelize.STRING 
}); 

var Hail = sequelize.define('hail', { 
    lat:  Sequelize.INTEGER, 
    lon:  Sequelize.INTEGER, 
}) 

Hail.belongsTo(Driver); 

sequelize.sync().then(function() { 
    return Hail.create({ 
     lat: 123, 
     lon: 1234 
    }); 
}).then(function(driver) { 
    console.log(driver.get({ 
    plain: true 
    })); 
}); 

우박을 드라이버에 연결하기 위해 속한 방법을 사용하려고합니다. 아무것도하지 않는 것 같습니다. 로그는 belongsTo 필드를 출력하지 않으며 hail은 데이터베이스에 driverID 열을 갖지 않습니다. 나는 어떤 오류도 내지 않는다.belongsTo는 아무 것도하지 않습니다.

답변

0

belongsTo 호출을 추가하기 전에 데이터베이스를 동기화 한 것으로 의심됩니다. 기본적으로 "동기화"작업은 테이블을 다시 만들거나 기존 테이블을 수정하지 않습니다. 당신은 한 번 "힘"으로에 동기화해야이 당신이 테이블에있는 기존의 모든 기록을 파괴 할 것이라고

sequelize.sync({force: true}).then(function() { 
    // ... 
}); 

참고.

또는 migrations을 설정하십시오.

관련 문제