Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 续集有很多失败_Sql_Orm_Sequelize.js - Fatal编程技术网

Sql 续集有很多失败

Sql 续集有很多失败,sql,orm,sequelize.js,Sql,Orm,Sequelize.js,我试图与Sequelize建立一对多的关联: 以下是我的项目: 'use strict'; import { models } from '../sequelize/index'; var ProjectImages = require('./projectImages'); module.exports = (sequelize, DataTypes) => { const Projects = sequelize.define( 'Projects',

我试图与Sequelize建立一对多的关联:

以下是我的项目:

'use strict';
import { models } from '../sequelize/index';
var ProjectImages = require('./projectImages');

module.exports = (sequelize, DataTypes) => {
    const Projects = sequelize.define(
        'Projects',
        {
            id: {
                allowNull: false,
                autoIncrement: true,
                primaryKey: true,
                type: DataTypes.INTEGER,
            },

            title: {
                type: DataTypes.STRING,
            },
        },
        {}
    );
    Projects.associate = function(models) {
        // associations can be defined here
        Projects.belongsToMany(models.Tags, { through: models.TagsProjects });
        Projects.hasMany(models.ProjectImages);
    };

    return Projects;
};
'use strict';
import { models } from '../sequelize/index';

module.exports = (sequelize, DataTypes) => {
    const ProjectImages = sequelize.define(
        'ProjectImages',
        {
            id: {
                allowNull: false,
                autoIncrement: true,
                primaryKey: true,
                type: DataTypes.INTEGER,
            },

            img: {
                type: DataTypes.STRING,
            },

            createdAt: {
                allowNull: false,
                type: DataTypes.DATE,
                defaultValue: DataTypes.literal('CURRENT_TIMESTAMP'),
            },

            updatedAt: {
                allowNull: false,
                type: DataTypes.DATE,
                defaultValue: DataTypes.literal('CURRENT_TIMESTAMP'),
            },
        },
        {}
    );

    return ProjectImages;
};
下面是这些项目的图片:

'use strict';
import { models } from '../sequelize/index';
var ProjectImages = require('./projectImages');

module.exports = (sequelize, DataTypes) => {
    const Projects = sequelize.define(
        'Projects',
        {
            id: {
                allowNull: false,
                autoIncrement: true,
                primaryKey: true,
                type: DataTypes.INTEGER,
            },

            title: {
                type: DataTypes.STRING,
            },
        },
        {}
    );
    Projects.associate = function(models) {
        // associations can be defined here
        Projects.belongsToMany(models.Tags, { through: models.TagsProjects });
        Projects.hasMany(models.ProjectImages);
    };

    return Projects;
};
'use strict';
import { models } from '../sequelize/index';

module.exports = (sequelize, DataTypes) => {
    const ProjectImages = sequelize.define(
        'ProjectImages',
        {
            id: {
                allowNull: false,
                autoIncrement: true,
                primaryKey: true,
                type: DataTypes.INTEGER,
            },

            img: {
                type: DataTypes.STRING,
            },

            createdAt: {
                allowNull: false,
                type: DataTypes.DATE,
                defaultValue: DataTypes.literal('CURRENT_TIMESTAMP'),
            },

            updatedAt: {
                allowNull: false,
                type: DataTypes.DATE,
                defaultValue: DataTypes.literal('CURRENT_TIMESTAMP'),
            },
        },
        {}
    );

    return ProjectImages;
};
我正在将数据库与类似的内容同步。如果我不尝试在投影图像中创建任何行,我不会得到任何错误;但是,如果我尝试使用此创建行(id为1的项目存在):

我得到这个错误:

Executing (default): INSERT INTO `ProjectImages` 
(`id`,`img`,`createdAt`,`updatedAt`,`ProjectId`) 
VALUES
(1,'https://fakeimg.pl/500x500/',CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,1);
[1] Unhandled rejection SequelizeForeignKeyConstraintError: 
Cannot add or update a child row: a foreign key constraint fails 
(`9uhfggfhf2`.`projectimages`, 
CONSTRAINT `projectimages_ibfk_1` 
FOREIGN KEY (`ProjectId`) 
REFERENCES `Projects` (`id`) 
ON DELETE SET NULL 
ON UPDATE CASCADE)
此外,如果我在同步时未将行添加到ProjectsImages中,我也不会收到任何错误,并且如果我尝试在DB中手动插入行,请执行以下操作:

INSERT INTO `ProjectImages` (`id`,`img`,`createdAt`,`updatedAt`,`ProjectsIdA`) 
VALUES (1,'https://fakeimg.pl/500x500/',CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,1);
它毫无问题地工作


有人知道那里发生了什么吗?

正如我所说的,为了与数据库同步,我使用了类似的东西

在片段的末尾,我必须为数据添加种子:

seed([
    articles, 
    projectImages, 
    projects, 
    tags, 
    tagsProjects, 
    users, 
    usersLogins
]);
您会注意到,我在创建
项目之前插入了
项目图像
。把事情安排得井井有条解决了问题

seed([
    articles, 
    projects, 
    projectImages, 
    tags, 
    tagsProjects, 
    users, 
    usersLogins
]);
:)