Это моя модель.
class Otp(models.Model):
user = models.OneToOneField('CustomUser', on_delete=models.CASCADE)
onetime = models.CharField(max_length=25, default=calculated, unique=True)
link = models.UUIDField(default=uuid.uuid4, unique=True)
created_at = models.DateTimeField(auto_now_add=True)
Я только что добавил столбец "ссылка". Отлично работает в моей среде разработки.
Когда на моем сервере я go inte venv и запускаю 'makemigrations', вижу изменения. Затем «мигрировать» и все применяется.
Теперь, когда я захожу на страницу, использующую таблицу, я получаю «столбец не существует».
I go inte postgres и проверяю стол. Изменений не применено. Новый столбец отсутствует.
Я пытаюсь добавить, удалить вперед и назад. Миграции безупречны, но в таблице нет никаких изменений.
Я даже бросил стол. Перезапустил миграции, чтобы создать его. Он говорит, что без изменений.
Я думаю, что миграции применяют его к другой базе данных. Но как я могу это проверить. Не должно быть другого. У меня есть только один.
РЕДАКТИРОВАТЬ с обновлением моего расследования. Мое соединение с базой данных установлено в настройках в production.py для postgres. Мой development.py - это sqlite.
Так что теперь я проверил db для sqlite на моем сервере. И, конечно же, миграция применяется к sqlite, а не postgres.
, почему он вдруг выбрал sqlite?
Так я применяю изменения.
1. Make changes in models.py for app
2. Activate venv to be able to run migrations
3. Run 'python manage.py makemigrations APPNAME'
4. Run 'python manage.py migrate APPNAME'
Итак, что определяет запуск миграций в направлении sqlite, а не postgres?