Preserve ledger venue provenance (#39)
* feat: preserve ledger venue provenance * fix: satisfy ledger test lint ratchet * fix: advance image migration inventory
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
"""Add nullable execution and order venue provenance to portfolio ledger.
|
||||
|
||||
Revision ID: 20260919_0032
|
||||
Revises: 20260913_0031
|
||||
"""
|
||||
|
||||
from alembic import op
|
||||
|
||||
revision = "20260919_0032"
|
||||
down_revision = "20260913_0031"
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
op.execute("ALTER TABLE portfolio_ledger ADD COLUMN IF NOT EXISTS execution_venue TEXT")
|
||||
op.execute("ALTER TABLE portfolio_ledger ADD COLUMN IF NOT EXISTS order_venue TEXT")
|
||||
op.execute(
|
||||
"""
|
||||
DO $$ BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'ck_portfolio_ledger_execution_venue'
|
||||
AND conrelid = 'portfolio_ledger'::regclass
|
||||
) THEN
|
||||
ALTER TABLE portfolio_ledger
|
||||
ADD CONSTRAINT ck_portfolio_ledger_execution_venue
|
||||
CHECK (execution_venue IN ('KRX', 'NXT'));
|
||||
END IF;
|
||||
END $$
|
||||
"""
|
||||
)
|
||||
op.execute(
|
||||
"""
|
||||
DO $$ BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'ck_portfolio_ledger_order_venue'
|
||||
AND conrelid = 'portfolio_ledger'::regclass
|
||||
) THEN
|
||||
ALTER TABLE portfolio_ledger
|
||||
ADD CONSTRAINT ck_portfolio_ledger_order_venue
|
||||
CHECK (order_venue IN ('KRX', 'NXT', 'SOR'));
|
||||
END IF;
|
||||
END $$
|
||||
"""
|
||||
)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_constraint("ck_portfolio_ledger_order_venue", "portfolio_ledger", type_="check")
|
||||
op.drop_constraint("ck_portfolio_ledger_execution_venue", "portfolio_ledger", type_="check")
|
||||
op.drop_column("portfolio_ledger", "order_venue")
|
||||
op.drop_column("portfolio_ledger", "execution_venue")
|
||||
Reference in New Issue
Block a user