1use rusqlite::Connection;
2use rusqlite_migration::{Migrations, M};
3
4use crate::Result;
5
6const MIGRATIONS: [&str; 1] = [include_str!("../migrations/00001-init.sql")];
7
8fn create_migrations() -> Migrations<'static> {
9 let items = MIGRATIONS.iter().map(|m| M::up(m)).collect::<Vec<_>>();
10 Migrations::new(items)
11}
12
13pub fn migrate(conn: &mut Connection) -> Result<()> {
14 let migrations = create_migrations();
15 migrations.to_latest(conn)?;
16 Ok(())
17}
18
19#[cfg(test)]
20mod tests {
21 use super::*;
22
23 #[test]
24 fn migrations_valid() {
25 let migrations = create_migrations();
26 migrations.validate().unwrap();
27 }
28
29 #[test]
30 fn migrations_work() {
31 let mut conn = rusqlite::Connection::open_in_memory().unwrap();
32 migrate(&mut conn).unwrap();
33 }
34}