45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
from src.storage.session import get_connection
|
|
|
|
|
|
DDL = [
|
|
'''
|
|
CREATE TABLE IF NOT EXISTS balance_snapshots (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
source TEXT NOT NULL,
|
|
payload_json JSONB NOT NULL
|
|
)
|
|
''',
|
|
'''
|
|
CREATE TABLE IF NOT EXISTS journal_events (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
level TEXT NOT NULL,
|
|
event_type TEXT NOT NULL,
|
|
message TEXT NOT NULL,
|
|
payload_json JSONB
|
|
)
|
|
''',
|
|
'''
|
|
CREATE TABLE IF NOT EXISTS order_drafts (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
symbol TEXT NOT NULL,
|
|
side TEXT NOT NULL,
|
|
order_type TEXT NOT NULL,
|
|
quantity NUMERIC(36, 18) NOT NULL,
|
|
status TEXT NOT NULL,
|
|
payload_json JSONB
|
|
)
|
|
'''
|
|
]
|
|
|
|
|
|
def init_schema() -> None:
|
|
with get_connection() as connection:
|
|
with connection.cursor() as cursor:
|
|
for statement in DDL:
|
|
cursor.execute(statement)
|