feat: sqlite migration runner with meta version table
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
from chat.db.connection import open_db
|
||||
from chat.db.migrate import apply_migrations
|
||||
|
||||
|
||||
def test_apply_migrations_creates_meta_table(tmp_path):
|
||||
db = tmp_path / "test.db"
|
||||
apply_migrations(db)
|
||||
with open_db(db) as conn:
|
||||
row = conn.execute(
|
||||
"SELECT value FROM meta WHERE key = 'schema_version'"
|
||||
).fetchone()
|
||||
assert row is not None
|
||||
assert int(row[0]) >= 1
|
||||
|
||||
|
||||
def test_apply_migrations_idempotent(tmp_path):
|
||||
db = tmp_path / "test.db"
|
||||
apply_migrations(db)
|
||||
apply_migrations(db) # second call must be a no-op
|
||||
with open_db(db) as conn:
|
||||
count = conn.execute("SELECT COUNT(*) FROM meta").fetchone()[0]
|
||||
assert count == 1
|
||||
Reference in New Issue
Block a user