Я хочу удалить 2 модели из производственной базы данных postgreSQL, которые больше не используются, но имеют данные о них.
Я немного боюсь удалять их из схемы и запускать prisma migrate dev, а затем возникать проблемы с миграцией, созданной в рабочей среде.
Поэтому моя идея заключалась в том, чтобы очистить базу данных перед:
1 сделать запрос к базе данных prod, чтобы удалить все данные из связанных таблиц. 2 удалите модели из схемы локально и запустите миграцию. 3 нажмите миграцию в prod с пустыми таблицами БД Ребята, что вы думаете?
Должен ли я сделать это или просто не бояться и удалить модели локально + запустить prisma migrate dev, а затем отправить миграцию в prod?
Есть ли другие способы добиться того, что я хочу?
Заранее спасибо!
Ваш план кажется хорошим! Это гарантирует, что никакие данные, которые все еще присутствуют в таблицах, не повлияют на миграцию.
Другой вариант, который вы могли бы рассмотреть, — это переименовать таблицы в базе данных, а не удалять их полностью. Это позволит вам получить данные позже (при необходимости), но также позволит без проблем удалить модели из вашей схемы.
Поэтому я бы сделал так:
Перечисленный вами подход выглядит хорошо.
Другой альтернативой может быть удаление моделей из файла схемы и запуск команды npx prisma migrate dev
с флагом --create-only, чтобы просто создать файл миграции, не применяя его к базе данных.
Вы можете сначала проверить файл миграции, и если он вам подходит, вы можете снова вызвать npx prisma migrate dev
, чтобы применить его.
Привет @nurul-sundarani Спасибо за ответ, я не знал об этом флаге. Он отлично подходит для моих нужд, поэтому большое спасибо за предложение, попробую, когда сделаю это 😄
Возвращаясь, чтобы сказать, что удаление было успешным. Спасибо за предоставление этого флага. Было очень полезно 🙌
Большое спасибо @lapadepts! Я постараюсь последовать вашему совету и переименовать таблицы перед удалением моделей.