Миграции Django для внешнего ключа не отражаются в базе данных MySQL
Это мой файл миграции с именем 0004_auto_20190218_1614.py
, Я побежал makemigrations
а также migration
команда. Все остальные добавления и удаления столбцов успешны, но в этом случае, когда я добавил внешний ключ, изменения не были отражены в базе данных. Когда я пытаюсь вставить запись.
# Generated by Django 2.1.5 on 2019-02-18 10:44`
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('projectName', '0003_auto_20190218_1604'),
]
operations = [
migrations.AlterField(
model_name='projectdetails',
name='userdetails',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='projectName.UserDetails'),
),
]
Я получаю это исключение
_mysql_connector.MySQLInterfaceError: Unknown column 'userdetails_id' in 'field list'
и тогда это:
During handling of the above exception, another exception occurred:
AttributeError: 'NoneType' object has no attribute 'strip'
Я новичок в Джанго. Любая помощь будет оценена.
3 ответа
От твоего DB-Models
, вы можете увидеть таблицу с именем django-migrations
, Здесь вы найдете все прикладные миграции. Одной из возможных причин является то, что вы вручную удалили некоторые файлы миграции, но, к сожалению, там есть ссылка django-migrations
Таблица. Одним из возможных решений является удаление этих примененных миграций и безопасное выполнение python manage.py migrate
команда снова.
NB. Не удаляйте какие-либо миграции, которые уже имеют физический эффект в моделях. что я хочу сказать, данные модели доступны для этого эффекта миграции. Лучше немой свой дБ, а затем сделайте это, если вы не совсем уверены в этом.
Убедитесь, что вы бежите migrate
команда и проверьте вашу базу данных на наличие обновлений.
Иногда примененные изменения в модели могут не отражаться в базе данных. Самый простой способ - удалить файлы миграции из папки миграции (кроме init.py) и снова запустить python manage.py makemigrations
, Или вы можете использовать south migrations
для эффективного отражения ваших миграций в базе данных.
Документы для south migrations
можно найти по адресу: https://south.readthedocs.io/en/latest/