当前位置: 首页 > 知识库问答 >
问题:

后遗症数据库错误列名称不存在

万俟亦
2023-03-14

我不明白为什么sequelize会生成这个专栏。

错误有:

未处理的拒绝SequelizeDatabaseError:列“PermissionID”不存在于Query.FormatError(/Home/Baptiste/IUT2/Projets3/Code/M3301/Node_Modules/Sequelize/lib/Dialects/Postgres/Query.js:366:16)的/Home/Baptite/IUT2/Projets3/Code/M3301/Node_Modules/Sequelize/lib/Dialects/Postgres/Query.js:72:18的tryCatcherS:93:12)在_DrainQueue(/Home/Baptiste/IUT2/Projets3/Code/M3301/Node_Modules/BlueBird/JS/Release/Async.js:86:9)在Async._DrainQuees(/Home/Baptiste/IUT2/Projets3/Code/M3301/Node_Modules/BlueBird/JS/Release/Async.js:102:5)在Inmediate.Async.DrainQuees[As_onInmediate]

迁移代码:

Utilisateurs表

    'use strict';
    module.exports = {
        up: (queryInterface, Sequelize) => {
            return queryInterface.createTable('Utilisateurs', {
                id: {
                    allowNull: false,
                    autoIncrement: true,
                    primaryKey: true,
                    type: Sequelize.INTEGER
                },
                adresseMail: {
                    type: Sequelize.STRING
                },
                nomUtilisateur: {
                    type: Sequelize.STRING
                },
                dateDeNaissance: {
                    type: Sequelize.STRING
                },
                motDePasse: {
                    type: Sequelize.STRING
                },
                createdAt: {
                    allowNull: false,
                    type: Sequelize.DATE
                },
                updatedAt: {
                    allowNull: false,
                    type: Sequelize.DATE
                },
                idPermission: {
                    type: Sequelize.INTEGER,
                    references: {
                        model: {
                            tableName: 'Permissions',
                            schema: 'public'
                        },
                        key: 'id'
                    }
                }
            });
        },
        down: (queryInterface, Sequelize) => {
            return queryInterface.dropTable('Utilisateurs');
        }
    };

权限表

'use strict';
    module.exports = {
        up: (queryInterface, Sequelize) => {
            return queryInterface.createTable('Permissions', {
                id: {
                    allowNull: false,
                    autoIncrement: true,
                    primaryKey: true,
                    type: Sequelize.INTEGER
                },
                estRegatier: {
                    type: Sequelize.BOOLEAN
                },
                estJury: {
                    type: Sequelize.BOOLEAN
                },
                estOrganisateur: {
                    type: Sequelize.BOOLEAN
                },
                createdAt: {
                    allowNull: false,
                    type: Sequelize.DATE
                },
                updatedAt: {
                    allowNull: false,
                    type: Sequelize.DATE
                }
            });
        },
        down: (queryInterface, Sequelize) => {
            return queryInterface.dropTable('Permissions');
        }
    };
    ```
    'use strict';
    module.exports = {
        up: (queryInterface, Sequelize) => {
            return queryInterface.createTable('Permissions', {
                id: {
                    allowNull: false,
                    autoIncrement: true,
                    primaryKey: true,
                    type: Sequelize.INTEGER
                },
                estRegatier: {
                    type: Sequelize.BOOLEAN
                },
                estJury: {
                    type: Sequelize.BOOLEAN
                },
                estOrganisateur: {
                    type: Sequelize.BOOLEAN
                },
                createdAt: {
                    allowNull: false,
                    type: Sequelize.DATE
                },
                updatedAt: {
                    allowNull: false,
                    type: Sequelize.DATE
                }
            });
        },
        down: (queryInterface, Sequelize) => {
            return queryInterface.dropTable('Permissions');
        }
    };
    ```
    models code :
    **Utilisateur**
    ```'use strict';
    module.exports = (sequelize, DataTypes) => {
        const Utilisateurs = sequelize.define('Utilisateur', {
            adresseMail: DataTypes.STRING,
            nomUtilisateur: DataTypes.STRING,
            dateDeNaissance: DataTypes.STRING,
            motDePasse: DataTypes.STRING,
            idPermission: DataTypes.INTEGER
        }, {});
        Utilisateurs.associate = function (models) {
            Utilisateurs.belongsTo(models.Permission);
            Utilisateurs.hasMany(models.Licencie);
        };
        return Utilisateurs;
    };
'use strict';

    module.exports = (sequelize, DataTypes) => {
        const Permission = sequelize.define('Permission', {
            estRegatier: DataTypes.BOOLEAN,
            estJury: DataTypes.BOOLEAN,
            estOrganisateur: DataTypes.BOOLEAN
        }, {});
        Permission.associate = function (models) {
            Permission.hasMany(models.Utilisateur);
        };
        return Permission;
    };

共有1个答案

刘元青
2023-03-14

您可以尝试以下方法:

module.exports = (sequelize, DataTypes) => {
    const Utilisateurs = sequelize.define('Utilisateur', {
        adresseMail: DataTypes.STRING,
        nomUtilisateur: DataTypes.STRING,
        dateDeNaissance: DataTypes.STRING,
        motDePasse: DataTypes.STRING,
        // idPermission: DataTypes.INTEGER **I belive you must remove this line!
    }, {});
    Utilisateurs.associate = function (models) {
        Utilisateurs.belongsTo(models.Permission, { foreignKey: 'idPermission'});
        Utilisateurs.hasMany(models.Licencie);
    };
    return Utilisateurs;
};

我尝试为该表指定foreign_PK,默认情况下,sequelize将尝试PermissionId,但您的键是IDPermission。

请为我糟糕的英语道歉!

 类似资料:
  • 我正在尝试使用squeelize orm将SQL Server与node.js一起使用。但我一直收到“未找到主机”错误: HostNotFounderRror[SequelizeHostNotFounderRror]:无法连接到LocalHost//SQLExPress:1433-getaddrinfo ENOTFOUND LocalHost//SQLExPress 无法连接到localhost/

  • 然后在控制器文件中调用该模型作为控制器的属性 我收到的错误- TypeError:this.model.modelMethod不是Controller.ControllerMethod(/usr/app/controllers/controller.js:83:41)位于Layer.Handle[as handle_request](/usr/app/node_modules/express/li

  • 我有以下问题,我有2个模型:客户端 和性别: 我的ClientController: 但我又想到了以下几点: 节点./bin/www OBS:在与透视表的N:m关系中,一切正常,有人能帮我吗?

  • 有人能帮我解决这个问题吗?

  • 我目前正在使用Liquibase Java API运行DDL脚本。成功地执行了整个脚本和相应的变更集。然而,在执行之后,Liquibase抛出一个LockException。 错误日志如下, 根据错误,IND\u DEV(DB用户名)以某种方式被追加到DATABASECHANGELOGLOCK表中。有人知道问题出在哪里吗?

  • 问题内容: 尝试使用WebMatrix启动网站时出现此错误。我有一个.cs文件可以拨打电话。 我的项目中有一个名为“ dbase”的数据库。自从使用WebMatrix启动网站以来,我没有web.config文件,也没有使用WebMatrix包的导入,因此我认为我不需要它们。我需要将代码包装在Razor标签中吗?这也给我造成了错误。 是什么原因造成的?有人对此有任何解决方案吗? 问题答案: 您需要一