Skip to content

Commit dfc35a4

Browse files
committed
snap_schedule/tests: fix db upgrade issue
Signed-off-by: Milind Changire <[email protected]>
1 parent 2533ac5 commit dfc35a4

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

src/pybind/mgr/snap_schedule/tests/conftest.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,41 @@ def db():
3131
db.row_factory = sqlite3.Row
3232
db.execute("PRAGMA FOREIGN_KEYS = 1")
3333
db.executescript(Schedule.CREATE_TABLES)
34+
_create_snap_schedule_kv_db(db)
35+
_upgrade_snap_schedule_db_schema(db)
3436
return db
37+
38+
def _create_snap_schedule_kv_db(db):
39+
SQL = """
40+
CREATE TABLE IF NOT EXISTS SnapScheduleModuleKV (
41+
key TEXT PRIMARY KEY,
42+
value NOT NULL
43+
) WITHOUT ROWID;
44+
INSERT OR IGNORE INTO SnapScheduleModuleKV (key, value) VALUES ('__snap_schedule_db_version', 1);
45+
"""
46+
db.executescript(SQL)
47+
48+
def _get_snap_schedule_db_version(db):
49+
SQL = """
50+
SELECT value
51+
FROM SnapScheduleModuleKV
52+
WHERE key = '__snap_schedule_db_version';
53+
"""
54+
cur = db.execute(SQL)
55+
row = cur.fetchone()
56+
assert row is not None
57+
return int(row[0])
58+
59+
# add all upgrades here
60+
def _upgrade_snap_schedule_db_schema(db):
61+
# add a column to hold the subvolume group name
62+
if _get_snap_schedule_db_version(db) < 2:
63+
SQL = """
64+
ALTER TABLE schedules
65+
ADD COLUMN group_name TEXT;
66+
"""
67+
db.executescript(SQL)
68+
69+
# bump up the snap-schedule db version to 2
70+
SQL = "UPDATE OR ROLLBACK SnapScheduleModuleKV SET value = ? WHERE key = '__snap_schedule_db_version';"
71+
db.execute(SQL, (2,))

0 commit comments

Comments
 (0)