Лучший способ изменить первичный ключ для таблицы в существующем проекте?

У меня есть существующий проект Django с некоторыми важными данными в базе данных.

Но я хотел бы изменить первичный ключ главной таблицы.

Как мне это сделать? (Я новичок в Django, поэтому любой совет новичка будет оценен по достоинству).

Я могу сделать это очень ручным способом:

  • создание новой таблицы, как я хотел

  • создание скрипта python, импортирующего библиотеку моделей и мои конкретные модели

  • создайте цикл для копирования всех записей из старой модели в новую

    .
  • проделайте то же самое со связанными моделями, которые полагаются на старый первичный ключ (обновление отношения через новый первичный ключ)

  • удалить старые таблицы

  • переименовать новые обновленные таблицы в соответствии со старыми таблицами

Правилен ли мой подход? Или есть более простой способ?

Несколько вопросов:

  • Я знаю, что могу создать пользовательские "файлы миграции", но мне кажется, что делать это вручную с помощью Django, создавая файлы миграции, будет проще. это нормально?

  • будут ли старые таблицы соединений (полагающиеся на неизменные ключи) автоматически распознавать новую переименованную таблицу? Или что-то сломается, если я удалю старую таблицу?

  • если делать вышеописанное, нужно ли убрать "on delete cascade", чтобы избежать удаления связанных записей, когда я удаляю и переименовываю таблицы с первичными ключами?

Есть предложения?

Вернуться на верх