Sequelize,将列设置为来自另一个模式的表的外键

时间:2017-02-20 13:19:27

标签: foreign-keys schema sequelize.js

我正在尝试创建一个表:

            queryInterface.createTable('MyTable', {
                id: {
                    type: Sequelize.INTEGER,
                    primaryKey: true,
                    autoIncrement: true
                },
               SomeTableId: {
                    type: Sequelize.INTEGER,
                    references: { model: 'static.SomeTable', key: 'id'},
                    allowNull: false
                },

            }, t);

问题是当我运行迁移时抛出此错误:

'Unhandled rejection SequelizeDatabaseError: relation "static.SomeTable" does not exist'

所以,基本上,问题是:

当我在&#39; public&#39; 架构中创建表格时,如何在该表格中指定一个外键列,该列引用< b>&#39;静态&#39; 架构。

1 个答案:

答案 0 :(得分:3)

好的,正确的语法是:

 queryInterface.createTable('MyTable', {
                id: {
                    type: Sequelize.INTEGER,
                    primaryKey: true,
                    autoIncrement: true
                },
               SomeTableId: {
                    type: Sequelize.INTEGER,
                    references: { 
                        model: {
                            tableName: 'SomeTable', 
                            schema: 'static'
                        }
                        key: 'id'
                    },
                    allowNull: false
                },

            }, t);

我们完成了,问题解决了:)