Миграция Mezzanine/Django 1.10: Таблицы базы данных не так уж много с миграциями

Я использую Mezzanine (Django 1.10), поэтому не вижу "db.sqlite3"

Я искал вопросы, похожие на мои, и большинство предложенных решений оказались неэффективными.

Я создал новую модель, а позже решил добавить новое поле. Я сделал «python manage.py makemigrations», и когда я посмотрел на папку с миграциями, она там; новое поле существует. Теперь, когда я запустил приложение и заглянул в администратора, оно выдало мне ошибку, в которой говорилось: «Такого столбца не существует». Поэтому, я думаю, моя база данных не синхронизируется с миграциями, которые у меня есть.

Вот что я сделал: 1. удалил все в папке миграции и заново создал "init.py".

1.1 побежал "python manage.py makemigrations <app_name>"

1.2 побежал "python manage.py migrate <app_name>"

1.3 побежал "python manage.py runserver"

На самом деле я могу просто переименовать свою модель в другое имя с теми же полями, однако иногда Django выдает ошибку, например «такой таблицы не существует». Это также было бы довольно утомительно, потому что, если я переименую свою модель, мне придется переименовывать ее в каждом файле, в который я импортировал модель, например, в admin.py, forms.py, views.py и т. д.

Я слышал о South, но это не применимо к Django 1.10.

Пожалуйста помоги. Спасибо!


person RF_956    schedule 01.04.2017    source источник


Ответы (1)


Я только что решил эту проблему. Поскольку я использую Mezzanine, имя базы данных не совпадает. Найдите файл dev.db, который будет находиться в той же папке, что и ваш manage.py. Затем удалите его. Затем снова запустите python manage.py makemigrations и python manage.py migrate. Тогда (надеюсь) это сработает.

person RF_956    schedule 01.04.2017