|
|
""" |
|
|
Migration: Create drivers table |
|
|
Created: 2025-11-14 |
|
|
""" |
|
|
|
|
|
import sys |
|
|
from pathlib import Path |
|
|
|
|
|
|
|
|
sys.path.insert(0, str(Path(__file__).parent.parent.parent)) |
|
|
|
|
|
from database.connection import get_db_connection |
|
|
from database.schema import DRIVERS_SCHEMA |
|
|
import logging |
|
|
|
|
|
logging.basicConfig(level=logging.INFO) |
|
|
logger = logging.getLogger(__name__) |
|
|
|
|
|
|
|
|
def up(): |
|
|
"""Apply migration - Create drivers table""" |
|
|
logger.info("Starting migration: Create drivers table") |
|
|
|
|
|
try: |
|
|
conn = get_db_connection() |
|
|
cursor = conn.cursor() |
|
|
|
|
|
|
|
|
logger.info("Creating drivers table...") |
|
|
cursor.execute(DRIVERS_SCHEMA) |
|
|
|
|
|
conn.commit() |
|
|
cursor.close() |
|
|
conn.close() |
|
|
|
|
|
logger.info("β
Migration completed successfully: Drivers table created") |
|
|
return True |
|
|
|
|
|
except Exception as e: |
|
|
logger.error(f"β Migration failed: {e}") |
|
|
if conn: |
|
|
conn.rollback() |
|
|
return False |
|
|
|
|
|
|
|
|
def down(): |
|
|
"""Rollback migration - Drop drivers table""" |
|
|
logger.info("Rolling back migration: Drop drivers table") |
|
|
|
|
|
try: |
|
|
conn = get_db_connection() |
|
|
cursor = conn.cursor() |
|
|
|
|
|
logger.info("Dropping drivers table...") |
|
|
cursor.execute("DROP TABLE IF EXISTS drivers CASCADE;") |
|
|
|
|
|
conn.commit() |
|
|
cursor.close() |
|
|
conn.close() |
|
|
|
|
|
logger.info("β
Rollback completed successfully: Drivers table dropped") |
|
|
return True |
|
|
|
|
|
except Exception as e: |
|
|
logger.error(f"β Rollback failed: {e}") |
|
|
if conn: |
|
|
conn.rollback() |
|
|
return False |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
import sys |
|
|
|
|
|
if len(sys.argv) > 1 and sys.argv[1] == "down": |
|
|
|
|
|
success = down() |
|
|
else: |
|
|
|
|
|
success = up() |
|
|
|
|
|
sys.exit(0 if success else 1) |
|
|
|