Я пытаюсь заполнить базу данных MySQL. Я использую Sequelize ORM. В моем файле index.js, который находится в папке моделей, у меня есть код для запуска функции realSync () для каждой модели как таковой:
const syncDB = async () => {
await db['Meal'].realSync();
await db['User'].realSync();
}
syncDB();
И в моем файле 'Meal' есть следующее:
const mealSeeds = require("../scripts/mealSeeds");
module.exports = (sequelize, DataTypes) => {
let Meal = sequelize.define("Meal", {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
name: DataTypes.STRING,
type: DataTypes.STRING,
description: DataTypes.STRING,
photo_URL: DataTypes.STRING,
allergen_dairy: DataTypes.BOOLEAN,
allergen_treenuts: DataTypes.BOOLEAN,
allergen_peanuts: DataTypes.BOOLEAN,
allergen_wheat: DataTypes.BOOLEAN,
allergen_fish: DataTypes.BOOLEAN,
allergen_crustaceanshellfish: DataTypes.BOOLEAN,
allergen_eggs: DataTypes.BOOLEAN,
allergen_soya: DataTypes.BOOLEAN,
date_available: DataTypes.DATE,
time_available: DataTypes.TIME,
quantity: DataTypes.INTEGER,
zipcodes: DataTypes.JSON,
catererId: {
field: "CatererId",
type: DataTypes.INTEGER,
allowNull: true,
defaultValue: 0
}
})
Meal.associate = function (models) {
Meal.belongsTo(models.User, {
foreignKey: "catererId",
targetKey: "id"
})
}
// // Insert the meal seed data
Meal.realSync = async () => {
await Meal.sync()
return await Meal.bulkCreate(mealSeeds,
{ignoreDuplicates: true}
);
};
return Meal;
}
Где Meal.realSync должен заполнить таблицу Meals данными из файла foodSeeds.js в каталоге scripts. (И у меня есть файл User.js с полями пользовательских таблиц и аналогичная функция .realSync () для пользовательских таблиц. И эта функция работает просто отлично, и пользователи попадают в БД).
Эта функция работала отлично в течение нескольких недель, так как я строил проект, а недавно, после изменения некоторых полей в таблице «Питание», он больше не работает. Мои предыдущие исследования показали, что при асинхронном вызове функции realSync () в файле index.js она будет запускаться и ждать завершения функции Meal realSync (), прежде чем запускать функцию User realSync (). Я не уверен, почему он больше не запускает первую функцию вообще. Любая помощь будет принята с благодарностью.