fix: only process numbered migrations (XXX_*.sql pattern)
Modified run_migrations() to only process files matching pattern: \d{3}_*.sql
This prevents utility scripts (check_features.sql) and manually applied
migrations (v9c_*.sql) from being executed.
Only properly numbered migrations like 003_add_email_verification.sql
will be processed.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
22651647cb
commit
913b485500
|
|
@ -155,6 +155,7 @@ def apply_migration(filepath, filename):
|
||||||
def run_migrations(migrations_dir="/app/migrations"):
|
def run_migrations(migrations_dir="/app/migrations"):
|
||||||
"""Run all pending migrations."""
|
"""Run all pending migrations."""
|
||||||
import glob
|
import glob
|
||||||
|
import re
|
||||||
|
|
||||||
if not os.path.exists(migrations_dir):
|
if not os.path.exists(migrations_dir):
|
||||||
print("✓ No migrations directory found")
|
print("✓ No migrations directory found")
|
||||||
|
|
@ -167,8 +168,10 @@ def run_migrations(migrations_dir="/app/migrations"):
|
||||||
# Get already applied migrations
|
# Get already applied migrations
|
||||||
applied = get_applied_migrations()
|
applied = get_applied_migrations()
|
||||||
|
|
||||||
# Get all migration files
|
# Get all migration files (only numbered migrations like 001_*.sql)
|
||||||
migration_files = sorted(glob.glob(os.path.join(migrations_dir, "*.sql")))
|
all_files = sorted(glob.glob(os.path.join(migrations_dir, "*.sql")))
|
||||||
|
migration_pattern = re.compile(r'^\d{3}_.*\.sql$')
|
||||||
|
migration_files = [f for f in all_files if migration_pattern.match(os.path.basename(f))]
|
||||||
|
|
||||||
if not migration_files:
|
if not migration_files:
|
||||||
print("✓ No migration files found")
|
print("✓ No migration files found")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user