Почему я получаю так много ошибок, когда меняю модель? - PullRequest
0 голосов
/ 17 февраля 2019

Я новичок в Django и Python.Я установил Django 2.1.5, Python 3.7 и MySQL в качестве базы данных.

Я создал 3 приложения - курсы, репетиторы и видео.Мигрировал успешно в MySQL.Настроил Django Admin и добавил некоторые данные ко всем из них.

Я использую uuid4 для генерации первичных ключей для всех.

Сначала я забыл создать внешние ключи или могубудь я изначально не планировал.

Теперь, когда я меняю свою модель (меняю ли я тип поля в модели django ИЛИ добавляю новое поле в любую модель), Django запрашивает значение по умолчаниюдля существующих строк.

Это дает мне два варианта установки автоматического значения на 1. И позволяет мне просматривать и делать себя на 2.

Если я делаю 1 - ничего не происходит, и системаповторяет то же самоеЕсли я вставляю любое случайное значение с опцией 2. Я получаю ошибку типа для очевидного несоответствия типов (я так полагаю).См. Ниже:

Пожалуйста, выберите исправление: 1) Укажите одноразовое значение по умолчанию сейчас (будет установлено для всех существующих строк с нулевым значением для этого столбца) 2) Выйти, и позвольте мне добавить значение по умолчанию вmodels.py Выберите опцию: 1 Пожалуйста, введите значение по умолчанию сейчас, как действительный Python. Доступны модули datetime и django.utils.timezone, так что вы можете сделать, например, timezone.now. Для выхода из этого приглашения введите «exit»1016 *

>

При редактировании модели я столкнулся с другой циклической ошибкой ссылки.

Теперь я хотел бы знать, что:

  1. Как это возможно для идеального проектирования схемы таблицы в первом Go.Очевидно, что модели нужно будет менять.

  2. При каждом изменении я сталкиваюсь с таким количеством проблем с миграциями (OperationalError).

  3. Это специфично для MySQL, и PostgreSQL лучше работает с изменениями схемы (в документации django сказано, что - https://docs.djangoproject.com/en/2.1/topics/migrations/#postgresql).

  4. Могу ли я просто переопределить все с последними изменениями в моих моделях.

  5. В такой ситуации я сбросил свою БД один раз, и все было гладко, когда я переиграл с последней моделью, но я не могу удалить БД каждый раз.

  6. Я пыталсяподдельные миграции, но изменение схемы является главной проблемой здесь.

  7. Или лучший способ / подход / процесс разработки приложений Django, о которых я не знаю.

  8. Я создал новое приложение и хочу добавить uuid этого приложения в качестве внешнего ключа в ранее созданное приложение (курсы) без потери существующих данных. Как я могу это сделать?

...