MCPcopy Create free account
hub / github.com/ElementsProject/lightning / db_migrate

Function db_migrate

plugins/bkpr/db.c:107–145  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

105};
106
107static bool db_migrate(struct plugin *p, struct db *db, bool *created)
108{
109 /* Read current version from database */
110 int current, orig, available;
111 struct db_stmt *stmt;
112
113 orig = current = db_get_version(db);
114 available = ARRAY_SIZE(db_migrations) - 1;
115
116 *created = false;
117 if (current == -1) {
118 *created = true;
119 plugin_log(p, LOG_INFORM, "Creating database");
120 } else if (available < current)
121 plugin_err(p,
122 "Refusing to migrate down from version %u to %u",
123 current, available);
124 else if (current != available)
125 plugin_log(p, LOG_INFORM,
126 "Updating database from version %u to %u",
127 current, available);
128
129 while (current < available) {
130 current++;
131 if (db_migrations[current].sql) {
132 stmt = db_prepare_v2(db, db_migrations[current].sql);
133 db_exec_prepared_v2(take(stmt));
134 }
135 if (db_migrations[current].func)
136 db_migrations[current].func(p, db);
137 }
138
139 /* Finally, update the version number in the version table */
140 stmt = db_prepare_v2(db, SQL("UPDATE version SET version=?;"));
141 db_bind_int(stmt, 0, available);
142 db_exec_prepared_v2(take(stmt));
143
144 return current != orig;
145}
146
147static void migration_remove_dupe_lease_fees(struct plugin *p, struct db *db)
148{

Callers 2

db_setupFunction · 0.70
test_db_migrateFunction · 0.50

Calls 5

db_get_versionFunction · 0.85
db_exec_prepared_v2Function · 0.85
db_bind_intFunction · 0.85
plugin_logFunction · 0.50
plugin_errFunction · 0.50

Tested by 1

test_db_migrateFunction · 0.40