#javascript #node.js #prisma
Вопрос:
Я новичок в prisma , я работаю над проектом с nodejs и prisma, моя база данных не пуста, и я внес некоторые изменения в схему prisma, и я хочу перенести ее без потери данных. Есть ли какое-либо решение, пожалуйста ?
Комментарии:
1. Не могли бы вы дать немного больше разъяснений о том, с какой проблемой вы столкнулись и с какими точными обстоятельствами? Кроме того, если это база данных разработчиков, вы можете просто запросить данные и повторно заполнить базу данных.
2. Нет, это производственная база данных, размещенная на VPS, и я хочу добавить несколько столбцов, но я не хочу, чтобы данные были потеряны
3. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.
4. @MohamedFadelMoumeni Я ответил на основании предоставленных вами разъяснений.
Ответ №1:
Ответ основан на проблеме, о которой вы упомянули в комментарии: «Я хочу добавить несколько столбцов, но я не хочу, чтобы существующие данные были потеряны».
если вы хотите добавить новые столбцы в существующую базу данных без потери данных, вам необходимо убедиться, что новые столбцы/поля являются необязательными. Это можно сделать в Prisma, пометив тип поля символом a ?
.
Если вам нужно, чтобы поле было обязательным, вы можете сделать это в три этапа:
- Сначала создайте новое поле как необязательное в схеме prisma и запустите миграцию
- Запустите сценарий, чтобы обновить все записи с этим полем, чтобы иметь определенные данные (какие данные должны зависеть от вашего контекста). Это также необходимо будет сделать для данных производственной базы данных.
- Отметьте это поле как обязательное в вашей схеме Prisma и запустите миграцию. Теперь это не приведет к потере данных, потому что это поле предназначено
non-null
для всех записей в базе данных.