push
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
"""add contractor regon and address to invoice
|
||||
|
||||
Revision ID: add_invoice_contractor_fields
|
||||
Revises:
|
||||
Create Date: 2026-03-10 12:00:00.000000
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy import inspect
|
||||
|
||||
|
||||
revision = "add_invoice_contractor_fields"
|
||||
down_revision = None
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def _has_column(table_name: str, column_name: str) -> bool:
|
||||
bind = op.get_bind()
|
||||
inspector = inspect(bind)
|
||||
return column_name in {col["name"] for col in inspector.get_columns(table_name)}
|
||||
|
||||
|
||||
def _has_index(table_name: str, index_name: str) -> bool:
|
||||
bind = op.get_bind()
|
||||
inspector = inspect(bind)
|
||||
return index_name in {idx["name"] for idx in inspector.get_indexes(table_name)}
|
||||
|
||||
|
||||
def upgrade():
|
||||
with op.batch_alter_table("invoice", schema=None) as batch_op:
|
||||
if not _has_column("invoice", "contractor_regon"):
|
||||
batch_op.add_column(sa.Column("contractor_regon", sa.String(length=32), nullable=True))
|
||||
if not _has_column("invoice", "contractor_address"):
|
||||
batch_op.add_column(sa.Column("contractor_address", sa.String(length=512), nullable=True))
|
||||
index_name = batch_op.f("ix_invoice_contractor_regon")
|
||||
if _has_column("invoice", "contractor_regon") and not _has_index("invoice", index_name):
|
||||
batch_op.create_index(index_name, ["contractor_regon"], unique=False)
|
||||
|
||||
|
||||
def downgrade():
|
||||
with op.batch_alter_table("invoice", schema=None) as batch_op:
|
||||
index_name = batch_op.f("ix_invoice_contractor_regon")
|
||||
if _has_index("invoice", index_name):
|
||||
batch_op.drop_index(index_name)
|
||||
if _has_column("invoice", "contractor_address"):
|
||||
batch_op.drop_column("contractor_address")
|
||||
if _has_column("invoice", "contractor_regon"):
|
||||
batch_op.drop_column("contractor_regon")
|
||||
@@ -0,0 +1,42 @@
|
||||
"""add split payment and mail security
|
||||
|
||||
Revision ID: 002_add_split_payment_and_mail_security
|
||||
Revises: add_invoice_contractor_fields
|
||||
Create Date: 2026-03-12
|
||||
"""
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy import inspect
|
||||
|
||||
|
||||
revision = '002_add_split_payment_and_mail_security'
|
||||
down_revision = 'add_invoice_contractor_fields'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def _has_column(table_name: str, column_name: str) -> bool:
|
||||
bind = op.get_bind()
|
||||
inspector = inspect(bind)
|
||||
return column_name in {col["name"] for col in inspector.get_columns(table_name)}
|
||||
|
||||
|
||||
def upgrade():
|
||||
with op.batch_alter_table('product') as batch_op:
|
||||
if not _has_column('product', 'split_payment_default'):
|
||||
batch_op.add_column(sa.Column('split_payment_default', sa.Boolean(), nullable=False, server_default=sa.false()))
|
||||
|
||||
with op.batch_alter_table('invoice') as batch_op:
|
||||
if not _has_column('invoice', 'split_payment'):
|
||||
batch_op.add_column(sa.Column('split_payment', sa.Boolean(), nullable=False, server_default=sa.false()))
|
||||
|
||||
|
||||
def downgrade():
|
||||
with op.batch_alter_table('invoice') as batch_op:
|
||||
if _has_column('invoice', 'split_payment'):
|
||||
batch_op.drop_column('split_payment')
|
||||
|
||||
with op.batch_alter_table('product') as batch_op:
|
||||
if _has_column('product', 'split_payment_default'):
|
||||
batch_op.drop_column('split_payment_default')
|
||||
@@ -0,0 +1,44 @@
|
||||
"""add bank account to company and invoice
|
||||
|
||||
Revision ID: 003_add_bank_account_to_company_and_invoice
|
||||
Revises: 002_add_split_payment_and_mail_security
|
||||
Create Date: 2026-03-12
|
||||
"""
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy import inspect
|
||||
|
||||
revision = '003_add_bank_account_to_company_and_invoice'
|
||||
down_revision = '002_add_split_payment_and_mail_security'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def _has_column(table_name: str, column_name: str) -> bool:
|
||||
bind = op.get_bind()
|
||||
inspector = inspect(bind)
|
||||
return column_name in {col['name'] for col in inspector.get_columns(table_name)}
|
||||
|
||||
|
||||
def upgrade():
|
||||
with op.batch_alter_table('company') as batch_op:
|
||||
if not _has_column('company', 'bank_account'):
|
||||
batch_op.add_column(sa.Column('bank_account', sa.String(length=64), nullable=True, server_default=''))
|
||||
|
||||
with op.batch_alter_table('invoice') as batch_op:
|
||||
if not _has_column('invoice', 'seller_bank_account'):
|
||||
batch_op.add_column(sa.Column('seller_bank_account', sa.String(length=64), nullable=True, server_default=''))
|
||||
|
||||
op.execute("UPDATE invoice SET seller_bank_account = COALESCE(seller_bank_account, '')")
|
||||
op.execute("UPDATE company SET bank_account = COALESCE(bank_account, '')")
|
||||
|
||||
|
||||
def downgrade():
|
||||
with op.batch_alter_table('invoice') as batch_op:
|
||||
if _has_column('invoice', 'seller_bank_account'):
|
||||
batch_op.drop_column('seller_bank_account')
|
||||
|
||||
with op.batch_alter_table('company') as batch_op:
|
||||
if _has_column('company', 'bank_account'):
|
||||
batch_op.drop_column('bank_account')
|
||||
Reference in New Issue
Block a user