Simplify database migrations

This commit is contained in:
Fedor Indutny 2025-08-06 10:32:08 -07:00 committed by GitHub
commit e6809c95db
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
106 changed files with 4661 additions and 6814 deletions

View file

@ -17,16 +17,24 @@ export function createDB(): WritableDB {
export function updateToVersion(db: WritableDB, version: number): void {
const startVersion = db.pragma('user_version', { simple: true }) as number;
if (startVersion === version) {
return;
}
const silentLogger = {
...consoleLogger,
info: noop,
};
for (const run of SCHEMA_VERSIONS) {
run(startVersion, db, silentLogger);
for (const { version: currentVersion, update } of SCHEMA_VERSIONS) {
if (currentVersion <= startVersion) {
continue;
}
const currentVersion = db.pragma('user_version', { simple: true });
db.transaction(() => {
update(db, silentLogger, startVersion);
db.pragma(`user_version = ${version}`);
})();
if (currentVersion === version) {
return;