Как обновить поля модели Django в базе данных MySQL

#python #django #django-models #field #mysql-python

#питон #джанго #django-модели #поле #mysql-python

Вопрос:

Я создал модель для сообщений в Django, и я пытаюсь обновить одно из полей в базе данных (MySQL). У меня есть следующий блок кода: model.py

 class Post (models.Model):
    title = models.CharField()
    preamble = models.CharField()
    body = models.TextField ()
createdAt = models.DateTimeField(auto_now_add=True, blank=True)
 

Я хочу добавить еще одно поле с именем author author=models.ForeignKey(User, on_delete=models.CASCADE
Кроме того, я хочу изменить имя одного из полей с preamble на introduction

Всякий раз, когда я запускаю команду python manage.py makemigrations , а затем python manage.py migrate я получаю сообщение об ошибке, которое завершает процесс миграции. это говорит мне, что поле preamble , которое у меня есть в моей базе данных, не распознается. Можно ли обновить preamble до introduction ?

Ответ №1:

  • Перед любыми изменениями убедитесь, что у вас есть миграция начального состояния вашего приложения.
  • Переименуйте preamble поле в introduction в вашей модели, не внося никаких других изменений.
  • Выполнить makemigrations . Он должен спросить вас, было ли это переименованием.
  • Добавьте author внешний ключ.
  • Выполнить makemigrations . Он должен запросить у вас значение по умолчанию для поля user, если оно не обнуляется; 1 надеюсь, следует ссылаться на первого пользователя, созданного в вашей системе.
  • Выполнить migrate .

Ответ №2:

Это должно быть работой:

  1. удалите базу данных SQLite, а также каталог миграций
  2. измените модель
  3. затем выполните команду migrate