cwist
Modern C web framework with libttak runtime
Loading...
Searching...
No Matches
migrate.h
Go to the documentation of this file.
1
11#ifndef __CWIST_MIGRATE_H__
12#define __CWIST_MIGRATE_H__
13
14#include <sqlite3.h>
15
17#define CWIST_MIGRATE_OK 0
18#define CWIST_MIGRATE_ERR_GENERIC (-1)
19#define CWIST_MIGRATE_ERR_SQL (-2)
20#define CWIST_MIGRATE_ERR_ARGS (-3)
21
31typedef struct cwist_migration_t {
33 const char *name;
34 const char *up_sql;
35 const char *down_sql;
37
50int cwist_migrate_up(sqlite3 *db, const cwist_migration_t *migrations, int count);
51
67int cwist_migrate_down(sqlite3 *db, const cwist_migration_t *migrations, int count, int steps);
68
74int cwist_migrate_version(sqlite3 *db);
75
76#endif /* __CWIST_MIGRATE_H__ */
int cwist_migrate_version(sqlite3 *db)
Return the highest version number that has been applied.
Definition migrate.c:99
int cwist_migrate_up(sqlite3 *db, const cwist_migration_t *migrations, int count)
Apply all migrations whose version > current schema version.
Definition migrate.c:123
int cwist_migrate_down(sqlite3 *db, const cwist_migration_t *migrations, int count, int steps)
Roll back the most recent steps migrations.
Definition migrate.c:174
size_t count
Definition otel.c:58
A single migration step.
Definition migrate.h:31
const char * down_sql
Definition migrate.h:35
const char * up_sql
Definition migrate.h:34
const char * name
Definition migrate.h:33