關於如何在續集中進行播種的非常簡短的帖子。 播種器是您在資料庫中建立靜態資料的方式,您希望這些資料無需使用者建立即可顯示。
這樣做的目標是向此模型定義的待辦事項應用程式中的非常基本的任務類型表添加一些靜態資料:
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; };
建立播種範本:
npx sequelize-cli seed:generate --name add-static-task-types
這將使用幾種任務類型來填充播種範本。
'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 }); } };
注意:不要忘記加入createdAt和updatedAt列,否則你會得到以下錯誤:
ERROR: null value in column "createdAt" of relation "static_urgencies" violates not-null constraint ERROR DETAIL: Failing row contains (1, Now, null, null).
運行種子:
npx sequelize-cli db:seed:all
成功如DBeaver視窗所示:
以上是靜態資料的 Sequelize 播種器的詳細內容。更多資訊請關注PHP中文網其他相關文章!