Sails.js:MySQL 中缺少水线外键关联

Posted

技术标签:

【中文标题】Sails.js:MySQL 中缺少水线外键关联【英文标题】:Sails.js : Waterline foreign key association missing in MySQL 【发布时间】:2015-07-01 15:24:13 【问题描述】:

我在sails.js 中使用水线ORM。我有一个用户模型和另一个与用户模型相关联的硬币模型。

//coins.js
 attributes: 
            name: 'string',
            // Associations
            userId: 
                model: 'user'
            
        

为此模型生成的查询是

CREATE TABLE `coins` (`name` VARCHAR(255) , `userId` INT , `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `createdAt` DATETIME , `updatedAt` DATETIME )

查询应包含 userId 的外键约束,但不包含。有解决办法吗?

【问题讨论】:

你也可以发布你的其他模型吗? 【参考方案1】:

目前 waterline 不会以您描述的方式创建外键约束。它只创建关联的字段。

您可以使用不同的库来代替 Waterline,例如 Sequelize.js,这里有一个关于如何去做的链接

https://groups.google.com/forum/#!topic/sailsjs/ALMxbKfnCIo

或者您可以手动创建约束和索引。

【讨论】:

以上是关于Sails.js:MySQL 中缺少水线外键关联的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在sails.js 中禁用水线并使用不同的ORM?

MySQL 错误 1822:添加外键约束失败;缺少约束索引但索引存在

水线ORM(sails.js)“在哪里或”查询

Sails.js 对关联值的查询

如何修复“MySQL 错误:1822。缺少约束索引”关于创建复合外键

MYSQL添加外键关联