首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >后缀,不创建联接表-多到多

后缀,不创建联接表-多到多
EN

Stack Overflow用户
提问于 2016-05-23 16:58:16
回答 1查看 1.6K关注 0票数 2

当我启动服务器时,在建立数据库连接后不久,我会这样做:

代码语言:javascript
代码运行次数:0
运行
复制
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表正在创建,但它不在那里。我遗漏了什么?

代码语言:javascript
代码运行次数:0
运行
复制
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`)

它说在文件中表是为我创建的。我不应该自己手动创建一个。

我正在使用:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-02 14:50:35

与其在每个模型上调用.sync(),不如只调用sequelize.sync()一次。

因此,这使得:

代码语言:javascript
代码运行次数:0
运行
复制
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();

下面是我如何在项目中使用它的一个例子:链接

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37396592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档