Полное руководство по реализации сеялки с помощью Sequelize CLI и PostgreSQL

В этой статье мы рассмотрим различные методы реализации сеялок с использованием Sequelize CLI с PostgreSQL. Сидеры — это важная часть управления базами данных, позволяющая разработчикам заполнять свои базы данных исходными или примерными данными. Мы рассмотрим несколько подходов и приведем примеры кода, которые помогут вам лучше понять процесс.

Метод 1: реализация базовой системы раздачи
Первый метод включает в себя создание базового файла раздачи с помощью Sequelize CLI. Вот пример:

Шаг 1. Установите необходимые зависимости

npm install sequelize sequelize-cli pg

Шаг 2. Создайте файл раздачи

npx sequelize-cli seed:generate --name demo-seeder

Шаг 3. Отредактируйте созданный файл раздачи

'use strict';
module.exports = {
  up: async (queryInterface, Sequelize) => {
    await queryInterface.bulkInsert('Users', [
      { name: 'John Doe', email: 'johndoe@example.com', createdAt: new Date(), updatedAt: new Date() },
      { name: 'Jane Smith', email: 'janesmith@example.com', createdAt: new Date(), updatedAt: new Date() },
    ], {});
  },
  down: async (queryInterface, Sequelize) => {
    await queryInterface.bulkDelete('Users', null, {});
  }
};

Шаг 4. Запустите сеялку

npx sequelize-cli db:seed:all

Метод 2: использование Faker.js для генерации динамических данных.
Второй метод предполагает использование библиотеки Faker.js для генерации динамических данных в сеялках. Это полезно, когда вам нужен большой набор данных для целей тестирования или демонстрации. Вот пример:

Шаг 1. Установите Faker.js

npm install faker

Шаг 2. Отредактируйте файл раздачи

'use strict';
const faker = require('faker');
module.exports = {
  up: async (queryInterface, Sequelize) => {
    const users = [];
    for (let i = 0; i < 10; i++) {
      users.push({
        name: faker.name.findName(),
        email: faker.internet.email(),
        createdAt: new Date(),
        updatedAt: new Date(),
      });
    }
    await queryInterface.bulkInsert('Users', users, {});
  },
  down: async (queryInterface, Sequelize) => {
    await queryInterface.bulkDelete('Users', null, {});
  }
};

Шаг 3. Запустите сеялку

npx sequelize-cli db:seed:all

Метод 3. Использование внешних источников данных
Третий метод предполагает использование внешних источников данных, таких как файлы JSON или файлы CSV, для заполнения базы данных. Вот пример:

Шаг 1. Подготовьте файл внешних данных (например, user.json)

[
  { "name": "John Doe", "email": "johndoe@example.com" },
  { "name": "Jane Smith", "email": "janesmith@example.com" }
]

Шаг 2. Отредактируйте файл раздачи

'use strict';
const users = require('../data/users.json');
module.exports = {
  up: async (queryInterface, Sequelize) => {
    await queryInterface.bulkInsert('Users', users.map(user => ({
      ...user,
      createdAt: new Date(),
      updatedAt: new Date(),
    })), {});
  },
  down: async (queryInterface, Sequelize) => {
    await queryInterface.bulkDelete('Users', null, {});
  }
};

Шаг 3. Запустите сеялку

npx sequelize-cli db:seed:all

В этой статье мы рассмотрели несколько методов реализации сеялок с использованием Sequelize CLI и PostgreSQL. Вы можете выбрать метод, который лучше всего соответствует вашим требованиям, будь то базовая раздача, динамическая генерация данных с помощью Faker.js или использование внешних источников данных. Сидеры — это мощный инструмент для управления исходными данными в вашей базе данных, который экономит ваше время и усилия во время разработки.