Чи варто мені видаляти старі міграції?

admin | 4 Квітня, 2025


Немає необхідності зберігати файли міграції після їх запуску. Загалом, це гарне емпіричне правило розглядати міграції бази даних як такі, що мають «прямий» напрямок. Тобто, навіть якщо вам потрібно виконати відкат, робіть це в абсолютно новому файлі міграції, а не за допомогою прямого відкоту.19 листопада 2022 р.

якщо ви видалите файли міграції, ви отримаєте помилки залежностей. Тож не намагайтеся втратити історію, видаливши файли міграції. Якщо моделі відповідають базі даних, можна безпечно видалити файли міграції.

Якщо ви використовуєте базу даних Mysql, ви можете запустити команду, а потім виконати запит Mysql. TRUNCATE TABLE django_migrations; Наведена вище команда видалить всю історію міграцій із таблиці міграцій проекту Django, яка зберігає журнал і відстежує історію міграцій, виконаних у програмі.

Скидання міграцій

  1. Зробіть резервну копію всього (включно з робочою базою даних)
  2. видалити всі файли міграції (але зберегти каталог і файли __init__.py),
  3. створити нову базу даних.
  4. змініть свій проект, щоб посилатися на цю базу даних.
  5. запустіть makemigrations, щоб створити набір міграцій, що описують ваші поточні моделі.

Скидання всіх міграцій

  1. Зробіть резервну копію своєї бази даних, якщо щось піде не так.
  2. У своїй базі даних видаліть усі рядки з таблиці історії міграцій (наприклад, DELETE FROM [__EFMigrationsHistory] на SQL Server).
  3. Видаліть папку «Міграції».

Видалення міграції в EF Core — це процес видалення файлів останньої створеної незастосованої міграції. Щоб видалити ці файли міграції, потрібно виконати команду «Видалити міграцію».

Якщо пакет показує "Синхронізовано" або "Завершено" без будь-яких помилок, ви можете безпечно видалити пакет (це не видалить синхронізовані елементи), і на цьому вся міграція пакета завершиться.