2016-06-19 6 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を設定してください。

関連する問題