diff options
Diffstat (limited to 'src/db.c')
| -rw-r--r-- | src/db.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -96,6 +96,7 @@ static const char SCHEMA_V1[] = " end_date TEXT NOT NULL," " status TEXT NOT NULL DEFAULT 'open' CHECK (status IN ('open','closed'))," " locked_until TEXT," + " dividend_ore INTEGER NOT NULL DEFAULT 0," " created_at TEXT NOT NULL," " closed_at TEXT," " closed_by INTEGER REFERENCES users(id)," @@ -362,6 +363,15 @@ static int db_upgrade_v3(sqlite3 *db, char **err) return 0; } +/* v4: the årsredovisning keeps the board's proposed dividend per year. */ +static int db_upgrade_v4(sqlite3 *db, char **err) +{ + return db_exec(db, + "ALTER TABLE fiscal_years ADD COLUMN dividend_ore" + " INTEGER NOT NULL DEFAULT 0", + err); +} + static int db_upgrade(sqlite3 *db, int from, char **err) { if (db_exec(db, "BEGIN IMMEDIATE", err) != 0) @@ -374,6 +384,10 @@ static int db_upgrade(sqlite3 *db, int from, char **err) db_exec(db, "ROLLBACK", NULL); return -1; } + if (from < 4 && db_upgrade_v4(db, err) != 0) { + db_exec(db, "ROLLBACK", NULL); + return -1; + } char *sql = sqlite3_mprintf( "UPDATE meta SET value='%d' WHERE key='schema_version'", BOKF_SCHEMA_VERSION); |
