от пример файла seed.ts
, который заполняет вашу базу данных тестовыми данными для моделей DocumentType
, Folder
и Documents
. Этот файл создаст по 10 записей для каждой модели.
typescript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | import { PrismaClient } from '@prisma/client'; const prisma = new PrismaClient(); async function main() { // Создание тестовых данных для DocumentType const documentTypes = await Promise.all( Array.from({ length: 10 }).map((_, i) => prisma.documentType.create({ data: { typeName: `DocumentType_${i + 1}`, }, }) ) ); // Создание тестовых данных для Folder const folders = await Promise.all( Array.from({ length: 10 }).map((_, i) => prisma.folder.create({ data: { folderName: `Folder_${i + 1}`, }, }) ) ); // Создание тестовых данных для Documents await Promise.all( Array.from({ length: 10 }).map((_, i) => prisma.documents.create({ data: { documentNumber: `DOC-${i + 1}`, documentDate: new Date(), title: `Document Title ${i + 1}`, filepath: `/path/to/document_${i + 1}.pdf`, folderId: folders[i % folders.length].id, // Связь с папкой documentTypeId: documentTypes[i % documentTypes.length].id, // Связь с типом документа }, }) ) ); console.log('Seeding завершено!'); } main() .catch((e) => { console.error(e); process.exit(1); }) .finally(async () => { await prisma.$disconnect(); }); |
Объяснение кода:
- DocumentType:
- Создаются 10 записей с уникальными именами
DocumentType_1
,DocumentType_2
и т.д.
- Создаются 10 записей с уникальными именами
- Folder:
- Создаются 10 записей с уникальными именами
Folder_1
,Folder_2
и т.д.
- Создаются 10 записей с уникальными именами
- Documents:
- Создаются 10 записей с уникальными номерами документов, текущей датой, заголовками и путями к файлам.
- Каждая запись связывается с одной из папок (
Folder
) и одним из типов документов (DocumentType
) через ихid
.
Как запустить seed.ts
:
- Убедитесь, что в
package.json
добавлена команда для запуска seed:json"prisma": { "seed": "ts-node prisma/seed.ts" }
- Выполните команду:bash
npx prisma db seed
Теперь ваша база данных будет заполнена тестовыми данными!