В этой статье мы рассмотрим различные методы реализации сеялок с использованием 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 или использование внешних источников данных. Сидеры — это мощный инструмент для управления исходными данными в вашей базе данных, который экономит ваше время и усилия во время разработки.