>웹 프론트엔드 >JS 튜토리얼 >정적 데이터에 대한 시더 연속화

정적 데이터에 대한 시더 연속화

Linda Hamilton
Linda Hamilton원래의
2024-12-29 03:10:10166검색

Sequelize에서 시더를 수행하는 방법에 대한 매우 간단한 게시물입니다. 시더는 사용자가 생성할 필요 없이 데이터베이스에 존재하려는 정적 데이터를 생성하는 방법입니다.

이 목표는 이 모델로 정의된 내 할 일 앱의 매우 기본적인 작업 유형 테이블에 일부 정적 데이터를 추가하는 것입니다.

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
    });
  }
};

참고: CreateAt 및 updateAt 열을 추가하는 것을 잊지 마세요. 그렇지 않으면 다음 오류가 발생합니다.

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 seeders for static data

위 내용은 정적 데이터에 대한 시더 연속화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:#FreeJavaScript다음 기사:#FreeJavaScript