Миграции Django: Как разрешить ошибку преобразования поля charfield в поле datetimefield
Вот что я делаю: я клонирую мою базу данных prod в песочницу. И я получаю ошибку при миграции, потому что ранее я сделал поле charfield в поле datetime. А затем поле datetime в Charfield после нескольких миграций.
Как мне решить следующую ошибку:
Ошибка :
А вот файл миграции 0002_alter_userorder_order_booking_time:
from django.db import migrations, models
import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
('pro_auth', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='userorder',
name='order_booking_time',
field=models.DateTimeField(default=django.utils.timezone.now),
),
]
Я думаю, вам нужна фиктивная миграция.
Попробуйте это
./manange.py migrate --fake <app_name_of_userorder_is_inclueded> <last_migration_number_which_synced_current_order_booking_time>
Это позволяет пропустить применение alter table.
Вы не передаете правильный DateTimeFormat. Я думаю, вам следует написать
field=models.DateTimeField(default=django.utils.timezone.now()),
основываясь на том, что показано здесь: Django default=timezone.now() сохраняет записи, используя "старое" время