feat: add chart_type column to pathway_nodes schema (Task 2.2)

- Add chart_type column (TEXT NOT NULL DEFAULT 'directory')
- Update UNIQUE constraint to (date_filter_id, chart_type, ids)
- Add idx_pathway_nodes_chart_type index for filtering
- Add migrate_pathway_nodes_chart_type() function for existing databases
- Update initialize_database() to run migration automatically
- Existing rows default to 'directory' chart type
This commit is contained in:
Andrew Charlwood
2026-02-05 14:24:57 +00:00
parent 3db93a685b
commit 19607d72b0
3 changed files with 112 additions and 9 deletions
+15
View File
@@ -34,6 +34,7 @@ from data_processing.schema import (
drop_all_tables,
verify_all_tables_exist,
get_all_table_counts,
migrate_pathway_nodes_chart_type,
)
from data_processing.reference_data import (
MigrationResult,
@@ -111,6 +112,20 @@ def initialize_database(
logger.error(f"Failed to create tables: {e}")
return False
# Run migrations for schema changes
try:
with db_manager.get_connection() as conn:
# Add chart_type column to pathway_nodes if it doesn't exist
success, msg = migrate_pathway_nodes_chart_type(conn)
if success:
logger.info(f"pathway_nodes migration: {msg}")
else:
logger.error(f"pathway_nodes migration failed: {msg}")
return False
except Exception as e:
logger.error(f"Migration failed: {e}")
return False
# Verify all tables were created
with db_manager.get_connection() as conn:
missing = verify_all_tables_exist(conn)