Discuss / JavaScript / sync部分没有运行

sync部分没有运行

Topic source

alienation

#1 Created at ... [Delete] [Delete and Lock User]

如题,本来库里只有pets,没有users

model里加载了pet和user,然后启动init_db,记录是pet和user都过了一遍,但是查mysql只有pets没有users

看官方文档,也只是简略的说明了一下sync()的功能,但是没有说具体细节

把db中sync前面加了段print

运行init后发现sync完全没有运行。。。只是运行了defineModel的部分而已

单独测试数据库创建部分是成功的

const Sequelize = require('sequelize');
const config = require('./config');

var sequelize = new Sequelize(config.database, config.username, config.password, {
    host: config.host,
    dialect: 'mysql',
    pool: {
        max: 5,
        min: 0,
        idle: 30000
    }
});

var User = sequelize.define('user', {
    id: {
        type: Sequelize.STRING(50),
        primaryKey: true
    },
    name: Sequelize.STRING(100),
    gender: Sequelize.BOOLEAN,
    birth: Sequelize.STRING(10),
    createdAt: Sequelize.BIGINT,
    updatedAt: Sequelize.BIGINT,
    version: Sequelize.BIGINT
}, {
        timestamps: false
    });

User.sync()

那么也就是说只要对接上了数据库,并且定义了model,拿这个model去执行sync方法就可以创建数据库表。

app.js中删除跟user有关的语句,单独执行插入pets,成功

说明app.js中的pet model是成功定义了的。那么user也是定义了的,在这里用user建表

报错,User和Pet没有sync方法,检查proto发现经过model加工的User和Pet与直接define的model不同

再往下搞不懂了


  • 1

Reply