fix(backend): alembic migration SQLite compat + sync push rollback on error
This commit is contained in:
126
backend/alembic/versions/7df0fb1c1e6f_sync_schema_alignment.py
Normal file
126
backend/alembic/versions/7df0fb1c1e6f_sync_schema_alignment.py
Normal file
@@ -0,0 +1,126 @@
|
||||
"""sync_schema_alignment
|
||||
|
||||
Revision ID: 7df0fb1c1e6f
|
||||
Revises: 1a4da27efc65
|
||||
Create Date: 2026-03-13 18:46:36.554590
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = '7df0fb1c1e6f'
|
||||
down_revision: Union[str, None] = '1a4da27efc65'
|
||||
branch_labels: Union[str, Sequence[str], None] = None
|
||||
depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.add_column('appointments', sa.Column('client_nume', sa.String(length=200), nullable=True))
|
||||
op.add_column('appointments', sa.Column('client_telefon', sa.String(length=20), nullable=True))
|
||||
op.add_column('appointments', sa.Column('data_ora', sa.Text(), nullable=True))
|
||||
op.add_column('appointments', sa.Column('durata_minute', sa.Integer(), server_default='60', nullable=False))
|
||||
op.add_column('appointments', sa.Column('observatii', sa.Text(), nullable=True))
|
||||
op.add_column('appointments', sa.Column('status', sa.String(length=20), server_default='PROGRAMAT', nullable=False))
|
||||
op.add_column('appointments', sa.Column('order_id', sa.String(length=36), nullable=True))
|
||||
op.drop_column('appointments', 'descriere')
|
||||
op.drop_column('appointments', 'data')
|
||||
op.add_column('catalog_ansamble', sa.Column('denumire', sa.String(length=100), nullable=False))
|
||||
op.drop_column('catalog_ansamble', 'nume')
|
||||
op.add_column('catalog_marci', sa.Column('denumire', sa.String(length=100), nullable=False))
|
||||
op.add_column('catalog_marci', sa.Column('activ', sa.Integer(), server_default='1', nullable=False))
|
||||
op.drop_column('catalog_marci', 'nume')
|
||||
op.add_column('catalog_modele', sa.Column('denumire', sa.String(length=100), nullable=False))
|
||||
op.drop_column('catalog_modele', 'nume')
|
||||
op.add_column('catalog_norme', sa.Column('cod', sa.String(length=50), nullable=True))
|
||||
op.add_column('catalog_norme', sa.Column('denumire', sa.Text(), nullable=False))
|
||||
op.add_column('catalog_norme', sa.Column('ore_normate', sa.Float(), server_default='0', nullable=False))
|
||||
op.drop_column('catalog_norme', 'descriere')
|
||||
op.drop_column('catalog_norme', 'ore')
|
||||
op.add_column('catalog_tipuri_deviz', sa.Column('denumire', sa.String(length=100), nullable=False))
|
||||
op.drop_column('catalog_tipuri_deviz', 'nume')
|
||||
op.add_column('catalog_tipuri_motoare', sa.Column('denumire', sa.String(length=50), nullable=False))
|
||||
op.drop_column('catalog_tipuri_motoare', 'nume')
|
||||
op.add_column('invoices', sa.Column('serie_factura', sa.String(length=20), nullable=True))
|
||||
op.add_column('invoices', sa.Column('modalitate_plata', sa.String(length=50), nullable=True))
|
||||
op.add_column('invoices', sa.Column('client_nume', sa.String(length=200), nullable=True))
|
||||
op.add_column('invoices', sa.Column('client_cod_fiscal', sa.String(length=20), nullable=True))
|
||||
op.add_column('invoices', sa.Column('nr_auto', sa.String(length=20), nullable=True))
|
||||
op.add_column('invoices', sa.Column('total_fara_tva', sa.Float(), server_default='0', nullable=False))
|
||||
op.add_column('invoices', sa.Column('tva', sa.Float(), server_default='0', nullable=False))
|
||||
op.add_column('invoices', sa.Column('total_general', sa.Float(), server_default='0', nullable=False))
|
||||
op.add_column('mecanici', sa.Column('user_id', sa.String(length=36), nullable=True))
|
||||
op.add_column('mecanici', sa.Column('prenume', sa.String(length=200), nullable=True))
|
||||
op.add_column('mecanici', sa.Column('activ', sa.Integer(), server_default='1', nullable=False))
|
||||
op.drop_column('mecanici', 'telefon')
|
||||
op.add_column('order_lines', sa.Column('norma_id', sa.String(length=36), nullable=True))
|
||||
op.add_column('order_lines', sa.Column('mecanic_id', sa.String(length=36), nullable=True))
|
||||
op.add_column('order_lines', sa.Column('ordine', sa.Integer(), nullable=True))
|
||||
op.add_column('orders', sa.Column('nr_comanda', sa.String(length=50), nullable=True))
|
||||
op.add_column('orders', sa.Column('client_nume', sa.String(length=200), nullable=True))
|
||||
op.add_column('orders', sa.Column('client_telefon', sa.String(length=20), nullable=True))
|
||||
op.add_column('orders', sa.Column('nr_auto', sa.String(length=20), nullable=True))
|
||||
op.add_column('orders', sa.Column('marca_denumire', sa.String(length=100), nullable=True))
|
||||
op.add_column('orders', sa.Column('model_denumire', sa.String(length=100), nullable=True))
|
||||
op.add_column('orders', sa.Column('created_by', sa.String(length=36), nullable=True))
|
||||
op.add_column('vehicles', sa.Column('serie_sasiu', sa.String(length=50), nullable=True))
|
||||
op.add_column('vehicles', sa.Column('client_cod_fiscal', sa.String(length=20), nullable=True))
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_column('vehicles', 'client_cod_fiscal')
|
||||
op.drop_column('vehicles', 'serie_sasiu')
|
||||
op.drop_column('orders', 'created_by')
|
||||
op.drop_column('orders', 'model_denumire')
|
||||
op.drop_column('orders', 'marca_denumire')
|
||||
op.drop_column('orders', 'nr_auto')
|
||||
op.drop_column('orders', 'client_telefon')
|
||||
op.drop_column('orders', 'client_nume')
|
||||
op.drop_column('orders', 'nr_comanda')
|
||||
op.drop_column('order_lines', 'ordine')
|
||||
op.drop_column('order_lines', 'mecanic_id')
|
||||
op.drop_column('order_lines', 'norma_id')
|
||||
op.add_column('mecanici', sa.Column('telefon', sa.VARCHAR(length=20), nullable=True))
|
||||
op.drop_column('mecanici', 'activ')
|
||||
op.drop_column('mecanici', 'prenume')
|
||||
op.drop_column('mecanici', 'user_id')
|
||||
op.drop_column('invoices', 'total_general')
|
||||
op.drop_column('invoices', 'tva')
|
||||
op.drop_column('invoices', 'total_fara_tva')
|
||||
op.drop_column('invoices', 'nr_auto')
|
||||
op.drop_column('invoices', 'client_cod_fiscal')
|
||||
op.drop_column('invoices', 'client_nume')
|
||||
op.drop_column('invoices', 'modalitate_plata')
|
||||
op.drop_column('invoices', 'serie_factura')
|
||||
op.add_column('catalog_tipuri_motoare', sa.Column('nume', sa.VARCHAR(length=50), nullable=False))
|
||||
op.drop_column('catalog_tipuri_motoare', 'denumire')
|
||||
op.add_column('catalog_tipuri_deviz', sa.Column('nume', sa.VARCHAR(length=100), nullable=False))
|
||||
op.drop_column('catalog_tipuri_deviz', 'denumire')
|
||||
op.add_column('catalog_norme', sa.Column('ore', sa.FLOAT(), nullable=False))
|
||||
op.add_column('catalog_norme', sa.Column('descriere', sa.TEXT(), nullable=False))
|
||||
op.drop_column('catalog_norme', 'ore_normate')
|
||||
op.drop_column('catalog_norme', 'denumire')
|
||||
op.drop_column('catalog_norme', 'cod')
|
||||
op.add_column('catalog_modele', sa.Column('nume', sa.VARCHAR(length=100), nullable=False))
|
||||
op.drop_column('catalog_modele', 'denumire')
|
||||
op.add_column('catalog_marci', sa.Column('nume', sa.VARCHAR(length=100), nullable=False))
|
||||
op.drop_column('catalog_marci', 'activ')
|
||||
op.drop_column('catalog_marci', 'denumire')
|
||||
op.add_column('catalog_ansamble', sa.Column('nume', sa.VARCHAR(length=100), nullable=False))
|
||||
op.drop_column('catalog_ansamble', 'denumire')
|
||||
op.add_column('appointments', sa.Column('data', sa.TEXT(), nullable=False))
|
||||
op.add_column('appointments', sa.Column('descriere', sa.TEXT(), nullable=True))
|
||||
op.drop_column('appointments', 'order_id')
|
||||
op.drop_column('appointments', 'status')
|
||||
op.drop_column('appointments', 'observatii')
|
||||
op.drop_column('appointments', 'durata_minute')
|
||||
op.drop_column('appointments', 'data_ora')
|
||||
op.drop_column('appointments', 'client_telefon')
|
||||
op.drop_column('appointments', 'client_nume')
|
||||
# ### end Alembic commands ###
|
||||
@@ -130,6 +130,7 @@ async def apply_push(
|
||||
applied += 1
|
||||
except Exception as exc: # noqa: BLE001
|
||||
errors.append({"table": table, "id": op.get("id"), "error": str(exc)})
|
||||
await db.rollback()
|
||||
|
||||
await db.commit()
|
||||
return {"applied": applied, "conflicts": errors}
|
||||
|
||||
Reference in New Issue
Block a user