ArtemBalandin81 / tech_accidents

Приложение для учета и фиксации простоев в бизнес-процессах УК ПИФ, АИФ, НПФ
MIT License
0 stars 0 forks source link

Победить ошику миграции datetime sqllite #54

Closed ArtemBalandin81 closed 6 months ago

ArtemBalandin81 commented 7 months ago

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) near "ALTER": syntax error [SQL: ALTER TABLE suspensions ALTER COLUMN created_at TYPE DATETIME] Пишут, что sqllite не умеет работать с DATETIME Нужно разобраться

    id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
    created_at: Mapped[date] = mapped_column(server_default=func.current_timestamp())
    updated_at: Mapped[date] = mapped_column(
    created_at: Mapped[datetime] = mapped_column(server_default=func.current_timestamp())
    updated_at: Mapped[datetime] = mapped_column(
        server_default=func.current_timestamp(),
        onupdate=func.current_timestamp(),
    )
ArtemBalandin81 commented 6 months ago

НЕОБХОДИМО РЕШИТЬ ПРОБЛЕМУ МИГРАЦИЙ: без нее не получается толком стартовать с нуля приложение!!! (+) - проблема решена зачисткой миграций. БД sqllite3 не способна менять типы столбцов после создания -отсюда возникает ошибка datetime. В случае изменения миграций и их применения к существующей БД -необходимо вручную изменять миграции, чтобы datetime столбцов не изменялся. При накатывании миграций "с нуля" ошибки не существует и миграции применяются, таблицы в БД создаются!!!