* feat: Version 1.2 - comprehensive database migration guidelines using the Expand-Contract pattern * Update src/backend/base/langflow/alembic/DB-MIGRATION-GUIDE.MD Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: Cleanup text and typos * feat: Implement migration validation workflow and add migration validator scripts * Update src/backend/base/langflow/alembic/migration_validator.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/backend/base/langflow/alembic/migration_validator.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/backend/base/langflow/alembic/migration_validator.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: moved the test_migrations directory to under tests * feat: Added migration validator to pre-commit check. * fix: improved test performance. * fix: optimized attribute resolution in migration validator * feat: add comprehensive tests for migration validator and guidelines * fix: Lint is complaining about shebang declared but not being used. * fix: Shebang reinstated. * Update src/backend/base/langflow/alembic/DB-MIGRATION-GUIDE.MD Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update .github/workflows/migration-validation.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * feat: color improvments * Update .github/workflows/migration-validation.yml Removed Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update .github/workflows/migration-validation.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * ci: Created relative paths for CI * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes (attempt 2/3) * [autofix.ci] apply automated fixes (attempt 3/3) * fix: Component index json. * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes (attempt 2/3) * [autofix.ci] apply automated fixes (attempt 3/3) --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
"""Test migrations with actual database."""
|
|
|
|
import sqlite3
|
|
import tempfile
|
|
|
|
from alembic import command
|
|
from alembic.config import Config
|
|
|
|
|
|
def test_real_migration():
|
|
"""Test migration with actual SQLite database."""
|
|
# Create temporary database
|
|
with tempfile.NamedTemporaryFile(suffix=".db") as tmp:
|
|
db_path = tmp.name
|
|
|
|
# Create test table
|
|
conn = sqlite3.connect(db_path)
|
|
conn.execute("""
|
|
CREATE TABLE users (
|
|
id INTEGER PRIMARY KEY,
|
|
name TEXT,
|
|
old_email TEXT
|
|
)
|
|
""")
|
|
conn.commit()
|
|
|
|
# Create alembic.ini
|
|
alembic_cfg = Config()
|
|
alembic_cfg.set_main_option("script_location", "src/backend/base/langflow/alembic")
|
|
alembic_cfg.set_main_option("sqlalchemy.url", f"sqlite:///{db_path}")
|
|
|
|
# Run migration
|
|
try:
|
|
command.upgrade(alembic_cfg, "head")
|
|
print("✅ Migration executed successfully")
|
|
except RuntimeError as e:
|
|
print(f"❌ Migration failed: {e}")
|
|
|
|
# Verify schema
|
|
cursor = conn.execute("PRAGMA table_info(users)")
|
|
columns = [row[1] for row in cursor.fetchall()]
|
|
print(f"Columns after migration: {columns}")
|
|
|
|
conn.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
test_real_migration()
|