This commit is contained in:
Chris Tsang 2022-05-09 18:24:46 +08:00
parent 31cdecf549
commit b622a6e1aa
2 changed files with 18 additions and 3 deletions

View File

@ -105,7 +105,7 @@ impl<'c> SchemaManager<'c> {
.conn .conn
.query_one(builder.build(&stmt)) .query_one(builder.build(&stmt))
.await? .await?
.ok_or_else(|| DbErr::Custom("Fail to check table exists".to_owned()))?; .ok_or_else(|| DbErr::Custom("Failed to check table exists".to_owned()))?;
Ok(res.try_get("", "has_table")?) Ok(res.try_get("", "has_table")?)
} }
@ -126,7 +126,7 @@ impl<'c> SchemaManager<'c> {
.conn .conn
.query_one(builder.build(&stmt)) .query_one(builder.build(&stmt))
.await? .await?
.ok_or_else(|| DbErr::Custom("Fail to check table exists".to_owned()))?; .ok_or_else(|| DbErr::Custom("Failed to check column exists".to_owned()))?;
Ok(res.try_get("", "has_column")?) Ok(res.try_get("", "has_column")?)
} }

View File

@ -10,7 +10,7 @@ async fn main() -> Result<(), DbErr> {
let db_name = "sea_orm_migration"; let db_name = "sea_orm_migration";
let db = Database::connect(&url).await?; let db = Database::connect(&url).await?;
let db = &match db.get_database_backend() { let db = &match db.get_database_backend() {
DbBackend::MySql | DbBackend::Postgres => { DbBackend::MySql => {
db.execute(Statement::from_string( db.execute(Statement::from_string(
db.get_database_backend(), db.get_database_backend(),
format!("CREATE DATABASE IF NOT EXISTS `{}`;", db_name), format!("CREATE DATABASE IF NOT EXISTS `{}`;", db_name),
@ -20,6 +20,21 @@ async fn main() -> Result<(), DbErr> {
let url = format!("{}/{}", url, db_name); let url = format!("{}/{}", url, db_name);
Database::connect(&url).await? Database::connect(&url).await?
} }
DbBackend::Postgres => {
db.execute(Statement::from_string(
db.get_database_backend(),
format!("DROP DATABASE IF EXISTS \"{}\";", db_name),
))
.await?;
db.execute(Statement::from_string(
db.get_database_backend(),
format!("CREATE DATABASE \"{}\";", db_name),
))
.await?;
let url = format!("{}/{}", url, db_name);
Database::connect(&url).await?
}
DbBackend::Sqlite => db, DbBackend::Sqlite => db,
}; };
let manager = SchemaManager::new(db); let manager = SchemaManager::new(db);