Très bref article sur la façon de créer des seeders dans Sequelize. Les seeders vous permettent de créer des données statiques dans une base de données que vous souhaitez voir présentes sans que les utilisateurs aient à les créer.
Le but est d'ajouter des données statiques à ma table de types de tâches très basique dans mon application Todo définie par ce modèle :
module.exports = (sequelize, Sequelize) => { const static_task_type = sequelize.define("static_task_type", { id: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true }, task_type: { type: Sequelize.STRING, allowNull: false } }); static_task_type.associate = function (models) { }; return static_task_type; };
Pour créer un modèle de seeder :
npx sequelize-cli seed:generate --name add-static-task-types
Il s'agit de remplir le modèle de semoir avec quelques types de tâches.
'use strict'; /** @type {import('sequelize-cli').Migration} */ module.exports = { async up (queryInterface, Sequelize) { await queryInterface.bulkInsert('static_task_types',[ { id: 1, task_type: 'Deep' ,createdAt: new Date(),updatedAt: new Date()}, { id: 2, task_type: 'Shallow' ,createdAt: new Date(),updatedAt: new Date()}, { id: 3, task_type: 'Phone Call' ,createdAt: new Date(),updatedAt: new Date() }, { id: 4, task_type: 'Errands' ,createdAt: new Date(),updatedAt: new Date()}] ) }, async down (queryInterface, Sequelize) { await queryInterface.bulkDelete('static_task_types', null, { truncate: true, cascade: true, // Optional: Will also delete dependent rows if foreign keys are used restartIdentity: true, // Optional: Resets auto-increment counters }); } };
REMARQUE : n'oubliez pas d'ajouter les colonnes CreateAt et UpdateAt, sinon vous obtiendrez l'erreur suivante :
ERROR: null value in column "createdAt" of relation "static_urgencies" violates not-null constraint ERROR DETAIL: Failing row contains (1, Now, null, null).
Pour exécuter la graine :
npx sequelize-cli db:seed:all
Succès comme indiqué dans la fenêtre DBeaver :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!