06/03 Optimize codes, Schwab account
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Migration: add account_id to investments table.
|
||||
Run once: python scripts/add_investment_account.py
|
||||
Safe to re-run — skips if the column already exists.
|
||||
"""
|
||||
import sys, os
|
||||
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
|
||||
from app import create_app
|
||||
from app.extensions import db
|
||||
|
||||
app = create_app()
|
||||
|
||||
with app.app_context():
|
||||
with db.engine.connect() as conn:
|
||||
# Check if column already exists
|
||||
result = conn.execute(db.text(
|
||||
"SELECT COUNT(*) FROM information_schema.columns "
|
||||
"WHERE table_schema = DATABASE() "
|
||||
"AND table_name = 'investments' "
|
||||
"AND column_name = 'account_id'"
|
||||
))
|
||||
exists = result.scalar()
|
||||
|
||||
if exists:
|
||||
print("Column investments.account_id already exists — nothing to do.")
|
||||
else:
|
||||
conn.execute(db.text(
|
||||
"ALTER TABLE investments "
|
||||
"ADD COLUMN account_id INT NULL DEFAULT NULL, "
|
||||
"ADD INDEX ix_investments_account_id (account_id), "
|
||||
"ADD CONSTRAINT fk_investments_account_id "
|
||||
" FOREIGN KEY (account_id) REFERENCES accounts(id) "
|
||||
" ON DELETE SET NULL"
|
||||
))
|
||||
conn.commit()
|
||||
print("Added investments.account_id column successfully.")
|
||||
Reference in New Issue
Block a user