feat: Add industry column to ProjectTable and update related schemas and query filters
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
"""
|
||||
Migration: Add industry column to projects table
|
||||
Date: 2025-10-23
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
# Add parent directory to path to import app modules
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
from sqlalchemy import create_engine, text
|
||||
from app.db.db import DATABASE_URL, engine
|
||||
|
||||
|
||||
def upgrade():
|
||||
"""Add industry column to projects table"""
|
||||
print("Running migration: Add industry column to projects table")
|
||||
|
||||
with engine.connect() as conn:
|
||||
# Check if column already exists
|
||||
result = conn.execute(text("PRAGMA table_info(projects)"))
|
||||
columns = [row[1] for row in result]
|
||||
|
||||
if 'industry' in columns:
|
||||
print("Column 'industry' already exists in projects table. Skipping migration.")
|
||||
return
|
||||
|
||||
# Add the industry column
|
||||
conn.execute(text("ALTER TABLE projects ADD COLUMN industry VARCHAR"))
|
||||
conn.commit()
|
||||
|
||||
print("Successfully added 'industry' column to projects table")
|
||||
|
||||
|
||||
def downgrade():
|
||||
"""Remove industry column from projects table"""
|
||||
print("Running downgrade: Remove industry column from projects table")
|
||||
|
||||
# Note: SQLite doesn't support DROP COLUMN directly
|
||||
# This is a simplified version - in production you'd need to recreate the table
|
||||
print("Warning: SQLite doesn't support DROP COLUMN.")
|
||||
print("To remove the column, you would need to:")
|
||||
print("1. Create a new table without the industry column")
|
||||
print("2. Copy data from old table to new table")
|
||||
print("3. Drop old table and rename new table")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser(description="Run database migration")
|
||||
parser.add_argument(
|
||||
"direction",
|
||||
choices=["upgrade", "downgrade"],
|
||||
default="upgrade",
|
||||
nargs="?",
|
||||
help="Migration direction (default: upgrade)"
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.direction == "upgrade":
|
||||
upgrade()
|
||||
else:
|
||||
downgrade()
|
||||
Reference in New Issue
Block a user