Make migrations idempotent by adding table existence checks before creation.
Properly handle the alembic_version table to ensure migration tracking.
Update database initialization utility to better handle errors and migration states.
Enhance test script with detailed diagnostics for troubleshooting.