Я изначально создал базу данных в mysql и использовал inspectdb для создания всех моделей. Пока все хорошо, но потом я начал пытаться вносить изменения в модели и переносить их. Я добавил столбцы безрезультатно, в базе данных не было никаких изменений, хотя папка миграций показывала изменения. Я начал задаваться вопросом, было ли это как-то связано с регистром, поэтому я попробовал еще раз со второй моделью TestTwoT с именем таблицы и всеми полями в нижнем регистре. Затем я запустил команду make migrations, которая вывела такой вывод:
Migrations for 'testdb':
testdb/migrations/0010_testtwot.py
- Create model TestTwoT
Сгенерированный файл .py в папке migrations (который мне подходит):
# Generated by Django 3.0.1 on 2020-02-10 22:46
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('testdb', '0009_auto_20200210_2241'),
]
operations = [
migrations.CreateModel(
name='TestTwoT',
fields=[
('id', models.AutoField(db_column='id', primary_key=True, serialize=False)),
('name', models.CharField(blank=True, db_column='name', max_length=1000, null=True)),
],
options={
'db_table': 'test_two_t',
'managed': True,
},
),
]
Затем я запустил Скрипт переноса, который выдал этот вывод, предполагая, что не было никаких проблем при создании таблицы:
Operations to perform:
Apply all migrations: admin, auth, contenttypes, testdb, sessions
Running migrations:
Applying testdb.0010_testtwot... OK
Однако, все еще нет никаких признаков моей новой таблицы, когда я запускаю команду 'show tables' sql или 'description test_two_t 'command.
В моем сценарии есть еще одна сложность, заключающаяся в том, что я не использую базу данных по умолчанию, но моя установка кажется полностью правильной, и мое приложение работает нормально, указывая на базу данных.
РЕДАКТИРОВАТЬ : Следуя совету Борута, я изменил команды (добавив параметр --database):
python3 manage.py makemigrations
python3 manage.py migrate --database=testdb
EDIT2: Теперь все работает отлично (после того, как я также удалил все предыдущие файлы миграции .py и начал с нуля) с исправленными выше командами).