#![feature(default_free_fn, proc_macro_hygiene, decl_macro)] #[macro_use] extern crate rocket; mod api; mod db; mod entities; mod error; mod migrator; use crate::migrator::Migrator; use sea_orm::Database; use sea_orm_migration::prelude::*; #[launch] async fn rocket_defines_the_main_fn() -> _ { femme::with_level(femme::LevelFilter::Debug); let url = db::connection_url(); let db = Database::connect(url).await.expect("db connection"); let schema_manager = SchemaManager::new(&db); Migrator::refresh(&db).await.expect("migration"); assert!(schema_manager .has_table("tracks") .await .expect("fetch tracks table")); assert!(schema_manager .has_table("ticks") .await .expect("fetch ticks table")); assert!(schema_manager .has_table("groups") .await .expect("fetch groups table")); assert!(schema_manager .has_table("track2_groups") .await .expect("fetch track2groups table")); api::start_server(db) }