blob: db47ceb095d0dd71176f08bb36cb561163319ead (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
use diesel::SqliteConnection;
use diesel_migrations::MigrationHarness;
use diesel_migrations::{embed_migrations, EmbeddedMigrations};
use rocket::fairing::AdHoc;
use rocket::{launch, routes, Build, Rocket};
use crate::databases::UserDataDb;
pub mod databases;
pub mod models;
pub mod routes;
pub mod schema;
pub const MIGRATIONS: EmbeddedMigrations = embed_migrations!("migrations");
fn run_database_migrations(connection: &mut SqliteConnection) {
connection
.run_pending_migrations(MIGRATIONS)
.expect("Error running database migrations");
}
#[launch]
async fn rocket() -> Rocket<Build> {
rocket::build()
.attach(UserDataDb::fairing())
.attach(AdHoc::on_liftoff("Database Migration", |rocket| {
Box::pin(async move {
let user_data_db = UserDataDb::get_one(rocket).await.expect(
"Failed to get connection to user data database in order to run migrations",
);
user_data_db.run(run_database_migrations).await;
})
}))
.mount(
"/",
routes![
routes::account::get_all_accounts,
routes::account::create_account
],
)
}
|