2021-07-16 01:42:29 -07:00
|
|
|
use rusqlite::{params, Connection, OptionalExtension, NO_PARAMS};
|
2021-07-09 22:44:13 -07:00
|
|
|
|
|
|
|
pub fn get_schema_version(connection: &Connection) -> anyhow::Result<u32> {
|
2021-07-16 01:42:29 -07:00
|
|
|
let version: Option<u32> = connection
|
|
|
|
.query_row(
|
|
|
|
"SELECT version FROM schema_version WHERE id = 1",
|
|
|
|
NO_PARAMS,
|
|
|
|
|row| row.get(0),
|
|
|
|
)
|
|
|
|
.optional()?;
|
2021-07-09 22:44:13 -07:00
|
|
|
Ok(version.unwrap_or(0))
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn update_schema_version(connection: &Connection, version: u32) -> anyhow::Result<()> {
|
2021-07-16 01:42:29 -07:00
|
|
|
connection.execute(
|
|
|
|
"INSERT INTO schema_version(id, version) VALUES (1, ?1) \
|
|
|
|
ON CONFLICT (id) DO UPDATE SET version = excluded.version",
|
|
|
|
params![version],
|
|
|
|
)?;
|
2021-07-09 22:44:13 -07:00
|
|
|
Ok(())
|
|
|
|
}
|