Run migration via try_on_ignite
This commit is contained in:
parent
41d25225e2
commit
f191645467
@ -1,4 +1,4 @@
|
|||||||
use rocket::fairing::AdHoc;
|
use rocket::fairing::{self, AdHoc};
|
||||||
use rocket::response::status::Created;
|
use rocket::response::status::Created;
|
||||||
use rocket::serde::json::Json;
|
use rocket::serde::json::Json;
|
||||||
use rocket::{futures, Build, Rocket};
|
use rocket::{futures, Build, Rocket};
|
||||||
@ -81,56 +81,10 @@ async fn destroy(conn: Connection<Db>) -> Result<()> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
// async fn run_migrations(rocket: Rocket<Build>) -> fairing::Result {
|
async fn run_migrations(rocket: Rocket<Build>) -> fairing::Result {
|
||||||
// use crate::rocket_db_pools::Pool;
|
|
||||||
// // match Db::fetch(&rocket) {
|
|
||||||
// // Some(db) => match sqlx::migrate!("db/sqlx/migrations").run(&**db).await {
|
|
||||||
// // Ok(_) => Ok(rocket),
|
|
||||||
// // Err(e) => {
|
|
||||||
// // error!("Failed to initialize SQLx database: {}", e);
|
|
||||||
// // Err(rocket)
|
|
||||||
// // }
|
|
||||||
// // },
|
|
||||||
// // None => Err(rocket),
|
|
||||||
// // }
|
|
||||||
// // let conn = Db::get(&rocket).await.expect("database connection");
|
|
||||||
|
|
||||||
// match Db::fetch(&rocket) {
|
|
||||||
// Some(db) => match setup::create_post_table(db.get().await().expect("database connection")).await {
|
|
||||||
// Ok(_) => {
|
|
||||||
// println!("rocket: {:#?}", rocket);
|
|
||||||
|
|
||||||
// Ok(rocket)
|
|
||||||
// }
|
|
||||||
// Err(e) => {
|
|
||||||
// error!("Failed to initialize SQLx database: {}", e);
|
|
||||||
// Err(rocket)
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
// None => Err(rocket),
|
|
||||||
// }
|
|
||||||
// // Ok(rocket)
|
|
||||||
// }
|
|
||||||
|
|
||||||
pub fn stage() -> AdHoc {
|
|
||||||
AdHoc::on_ignite("SQLx Stage", |rocket| async {
|
|
||||||
rocket
|
|
||||||
.attach(Db::init())
|
|
||||||
.attach(AdHoc::try_on_ignite("Create init post", |rocket| async {
|
|
||||||
let con = sea_orm::Database::connect("mysql://root:@localhost/rocket_example")
|
let con = sea_orm::Database::connect("mysql://root:@localhost/rocket_example")
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
// let res = sqlx::query(
|
|
||||||
// r#"
|
|
||||||
// CREATE TABLE posts (
|
|
||||||
// id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
||||||
// title VARCHAR NOT NULL,
|
|
||||||
// text VARCHAR NOT NULL,
|
|
||||||
// published BOOLEAN NOT NULL DEFAULT 0
|
|
||||||
// )"#,
|
|
||||||
// )
|
|
||||||
// .execute(&**db)
|
|
||||||
// .await;
|
|
||||||
let create_post_table = con
|
let create_post_table = con
|
||||||
.execute(Statement::from_string(
|
.execute(Statement::from_string(
|
||||||
DatabaseBackend::MySql,
|
DatabaseBackend::MySql,
|
||||||
@ -145,67 +99,14 @@ pub fn stage() -> AdHoc {
|
|||||||
))
|
))
|
||||||
.await;
|
.await;
|
||||||
println!("create_post_table: {:#?}", create_post_table);
|
println!("create_post_table: {:#?}", create_post_table);
|
||||||
|
|
||||||
let create_post = con
|
|
||||||
.execute(Statement::from_string(
|
|
||||||
DatabaseBackend::MySql,
|
|
||||||
"INSERT INTO posts (title, text) VALUES ('a post', 'content of a post')"
|
|
||||||
.to_owned(),
|
|
||||||
))
|
|
||||||
.await;
|
|
||||||
println!("create_post: {:#?}", create_post);
|
|
||||||
|
|
||||||
// println!("all_posts: {:#?}", all_posts);
|
|
||||||
|
|
||||||
// let res2 = sqlx::query(
|
|
||||||
// r#"
|
|
||||||
// INSERT INTO posts (title, text) VALUES ('a post', 'content of a post')
|
|
||||||
// "#,
|
|
||||||
// )
|
|
||||||
// .execute(&**db)
|
|
||||||
// .await;
|
|
||||||
// println!("res2: {:#?}", res2);
|
|
||||||
|
|
||||||
// Db::fetch(&rocket)
|
|
||||||
// .run(|db| {
|
|
||||||
// sqlx::query("DELETE FROM table").execute(&pool).await;
|
|
||||||
|
|
||||||
// // conn.execute(
|
|
||||||
// // r#"
|
|
||||||
// // CREATE TABLE posts (
|
|
||||||
// // id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
||||||
// // title VARCHAR NOT NULL,
|
|
||||||
// // text VARCHAR NOT NULL,
|
|
||||||
// // published BOOLEAN NOT NULL DEFAULT 0
|
|
||||||
// // )"#,
|
|
||||||
// // params![],
|
|
||||||
// // )
|
|
||||||
// })
|
|
||||||
// .await
|
|
||||||
// .expect("can init rusqlite DB");
|
|
||||||
Ok(rocket)
|
Ok(rocket)
|
||||||
|
}
|
||||||
|
|
||||||
// match Db::fetch(&rocket) {
|
pub fn stage() -> AdHoc {
|
||||||
// Some(db) => {
|
AdHoc::on_ignite("SQLx Stage", |rocket| async {
|
||||||
// println!("db: {:#?}", db);
|
rocket
|
||||||
// println!("&**db: {:#?}", &**db);
|
.attach(Db::init())
|
||||||
|
.attach(AdHoc::try_on_ignite("SQLx Migrations", run_migrations))
|
||||||
// Ok(rocket)
|
|
||||||
// }
|
|
||||||
// None => Err(rocket),
|
|
||||||
// }
|
|
||||||
}))
|
|
||||||
.mount("/sqlx", routes![create, delete, destroy, list, read,])
|
.mount("/sqlx", routes![create, delete, destroy, list, read,])
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// pub async fn create_post(db: &DbConn) {
|
|
||||||
// let post = post::ActiveModel {
|
|
||||||
// title: Set("Post One".to_owned()),
|
|
||||||
// text: Set("post content 1".to_owned()),
|
|
||||||
// ..Default::default()
|
|
||||||
// }
|
|
||||||
// .save(db)
|
|
||||||
// .await
|
|
||||||
// .expect("could not insert post");
|
|
||||||
// }
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user