У меня есть таблица SQLite3 с ~ 2 миллионами строк и ~ 30 столбцами. Мне нужно добавить еще 4 поля в модель. Я добавляю новые поля в models.py
, запускаю manage.py makemigrations
, а затем manage.py migrate
. Когда я проверяю SQL запросов, Django создает новую таблицу (и удаляет старую) для каждого нового поля вместо создания новой таблицы один раз со всеми 4 добавленными полями. Это увеличивает время миграции в 4 раза, что приводит к ~ 1 часу. Можно ли как-то оптимизировать это и заставить Django добавить все 4 поля в одном операторе CREATE TABLE
?
Мой текущий файл миграции:
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('my_project', '0017_auto_20200218_1325'),
]
operations = [
migrations.AddField(
model_name='ads',
name='type',
field=models.CharField(max_length=30, null=True),
),
migrations.AddField(
model_name='my_project',
name='color',
field=models.CharField(max_length=30, null=True),
),
migrations.AddField(
model_name='my_project',
name='damage',
field=models.CharField(max_length=30, null=True),
),
migrations.AddField(
model_name='my_project',
name='euro',
field=models.CharField(max_length=20, null=True),
)
]