Миграция Django не записывает в БД, но жалуется на отсутствие связи при внесении дальнейших изменений - PullRequest
0 голосов
/ 06 июня 2019

Недавно я создал новый класс под названием «Поиск» для хранения истории поиска пользователей.Чтобы отразить это в базе данных, я запустил python manage.py makemigrations, который создает файл 0001_initial.py в каталоге миграций, пока что все хорошо.Однако, когда я запускаю python manage.py showmigratiions и он показывает, что новый класс уже перенесен.

searches
 [X] 0001_initial

Если я запускаю python manage.py migrate, неудивительно, что он считает, что дальнейшая миграция не требуется.

Operations to perform:
  Apply all migrations: searches
Running migrations:
  No migrations to apply.

На протяжении всего процесса 0001_initial.py никогда не показывается в таблице django_migrations.

Странная вещь, если я немного изменю класс, я могу запустить makemigrations, а затем migrate,и миграция редактирования отобразится в таблице django_migrations в базе данных.К сожалению, он все равно не создаст таблицу для поиска.

Вот мой model.py

from django.db import models
from bookapp.users.models import User
from bookapp.models import TimestampedModel

class Search(TimestampedModel):

    user = models.ForeignKey('users.User', related_name='searched_by_user', blank=True, null=True, on_delete=models.SET_NULL)
    datetime = models.DateTimeField(auto_now_add=True)
    search_input = models.CharField(max_length=1024, null=True, blank=True)

    def __str__(self):
        return self.search_input

, и я включил Поиск в INSTALLED_APP в settings.py

...