node.js - ownTo 不做任何事情

标签 node.js orm sequelize.js

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 调用之前已经同步了数据库。默认情况下,“同步”操作不会重新创建表或修改现有表。您需要以“强制”方式同步一次:

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

请注意,这会破坏您在表中的所有现有记录。

或者,考虑设置 migrations

关于node.js - ownTo 不做任何事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37910138/

相关文章:

javascript - 防止sequelize软删除在其他地方引用的行

node.js - Postgresql、Node.js ORM - 相关表中的外键和主键问题(多对多)

node.js - 使用 sequelize 进行子查询以使用日期和时间过滤即将发生的事件

node.js - 使用 NodeJS session ?

JavaScript - "url.path"和 "url.pathname"有什么区别?

java - Ebean ManyToMany 与桥表查找所有查询

java - Hibernate:如何在一张表中加入2个类?

node.js - NodeJS Mongoose 将事件插入到 public/index.html

node.js - 如何使用 npm 中的 alexa-sdk 将 LaunchRequest 委托(delegate)给 IntentRequest

mysql - 违反完整性约束 : 1452 Cannot add or update a child row: a foreign key constraint fails