当我启动服务器时,在建立数据库连接后不久,我会这样做:
var tool = require("./tool"); //created with Sequelize.define()
var requirement = require("./requirement"); //created with Sequelize.define()
tool.belongsToMany(requirement, {through: "toolRequirements"});
requirement.belongsToMany(tool, {through: "toolRequirements"});
tool.sync();
requirement.sync();
我希望看到join表正在创建,但它不在那里。我遗漏了什么?
Executing (default): CREATE TABLE IF NOT EXISTS `requirements` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` VARCHAR(255) NOT NULL, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL);
Executing (default): CREATE TABLE IF NOT EXISTS `tools` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` VARCHAR(255) NOT NULL, `idCode` VARCHAR(255), `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL);
Executing (default): PRAGMA INDEX_LIST(`requirements`)
Executing (default): PRAGMA INDEX_LIST(`tools`)
它说在文件中表是为我创建的。我不应该自己手动创建一个。
我正在使用:
发布于 2017-11-02 06:50:35
与其在每个模型上调用.sync()
,不如只调用sequelize.sync()
一次。
因此,这使得:
var tool = require("./tool"); //created with Sequelize.define()
var requirement = require("./requirement"); //created with Sequelize.define()
tool.belongsToMany(requirement, {through: "toolRequirements"});
requirement.belongsToMany(tool, {through: "toolRequirements"});
sequelize.sync();
//DO NOT tool.sync();
//DO NOT requirement.sync();
下面是我如何在项目中使用它的一个例子:链接
https://stackoverflow.com/questions/37396592
复制相似问题