diff --git a/.gitignore b/.gitignore index 950c227c..3eaf3f74 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ target Cargo.lock *.sublime* -.vscode \ No newline at end of file +.vscode +.idea/* \ No newline at end of file diff --git a/sea-orm-cli/src/main.rs b/sea-orm-cli/src/main.rs index e7041ef0..527e1264 100644 --- a/sea-orm-cli/src/main.rs +++ b/sea-orm-cli/src/main.rs @@ -56,7 +56,7 @@ async fn run_generate_command(matches: &ArgMatches<'_>) -> Result<(), Box bool { + match self { + Self::Postgres => { + base_url.starts_with("postgres://") || base_url.starts_with("postgresql://") + } + Self::MySql => base_url.starts_with("mysql://"), + Self::Sqlite => base_url.starts_with("sqlite:"), + } + } + pub fn build(&self, statement: &S) -> Statement where S: StatementBuilder, diff --git a/src/database/mod.rs b/src/database/mod.rs index 36f825bb..f61343c1 100644 --- a/src/database/mod.rs +++ b/src/database/mod.rs @@ -18,15 +18,15 @@ pub struct Database; impl Database { pub async fn connect(string: &str) -> Result { #[cfg(feature = "sqlx-mysql")] - if crate::SqlxMySqlConnector::accepts(string) { + if DbBackend::MySql.is_prefix_of(string) { return crate::SqlxMySqlConnector::connect(string).await; } #[cfg(feature = "sqlx-postgres")] - if crate::SqlxPostgresConnector::accepts(string) { + if DbBackend::Postgres.is_prefix_of(string) { return crate::SqlxPostgresConnector::connect(string).await; } #[cfg(feature = "sqlx-sqlite")] - if crate::SqlxSqliteConnector::accepts(string) { + if DbBackend::Sqlite.is_prefix_of(string) { return crate::SqlxSqliteConnector::connect(string).await; } #[cfg(feature = "mock")] diff --git a/src/driver/mock.rs b/src/driver/mock.rs index 823ddb32..0e398586 100644 --- a/src/driver/mock.rs +++ b/src/driver/mock.rs @@ -31,15 +31,15 @@ impl MockDatabaseConnector { #[allow(unused_variables)] pub fn accepts(string: &str) -> bool { #[cfg(feature = "sqlx-mysql")] - if crate::SqlxMySqlConnector::accepts(string) { + if DbBackend::MySql.is_prefix_of(string) { return true; } #[cfg(feature = "sqlx-postgres")] - if crate::SqlxPostgresConnector::accepts(string) { + if DbBackend::Postgres.is_prefix_of(string) { return true; } #[cfg(feature = "sqlx-sqlite")] - if crate::SqlxSqliteConnector::accepts(string) { + if DbBackend::Sqlite.is_prefix_of(string) { return true; } false diff --git a/src/driver/sqlx_mysql.rs b/src/driver/sqlx_mysql.rs index be590b6e..c542a9b4 100644 --- a/src/driver/sqlx_mysql.rs +++ b/src/driver/sqlx_mysql.rs @@ -6,7 +6,7 @@ use sqlx::{ sea_query::sea_query_driver_mysql!(); use sea_query_driver_mysql::bind_query; -use crate::{debug_print, error::*, executor::*, DatabaseConnection, Statement}; +use crate::{debug_print, error::*, executor::*, DatabaseConnection, DbBackend, Statement}; use super::sqlx_common::*; @@ -20,7 +20,7 @@ pub struct SqlxMySqlPoolConnection { impl SqlxMySqlConnector { pub fn accepts(string: &str) -> bool { - string.starts_with("mysql://") + DbBackend::MySql.is_prefix_of(string) } pub async fn connect(string: &str) -> Result { diff --git a/src/driver/sqlx_postgres.rs b/src/driver/sqlx_postgres.rs index e7b9032a..fb5402eb 100644 --- a/src/driver/sqlx_postgres.rs +++ b/src/driver/sqlx_postgres.rs @@ -6,7 +6,7 @@ use sqlx::{ sea_query::sea_query_driver_postgres!(); use sea_query_driver_postgres::bind_query; -use crate::{debug_print, error::*, executor::*, DatabaseConnection, Statement}; +use crate::{debug_print, error::*, executor::*, DatabaseConnection, DbBackend, Statement}; use super::sqlx_common::*; @@ -20,7 +20,7 @@ pub struct SqlxPostgresPoolConnection { impl SqlxPostgresConnector { pub fn accepts(string: &str) -> bool { - string.starts_with("postgres://") + DbBackend::Postgres.is_prefix_of(string) } pub async fn connect(string: &str) -> Result { diff --git a/src/driver/sqlx_sqlite.rs b/src/driver/sqlx_sqlite.rs index bd6f0399..b02f4408 100644 --- a/src/driver/sqlx_sqlite.rs +++ b/src/driver/sqlx_sqlite.rs @@ -6,7 +6,7 @@ use sqlx::{ sea_query::sea_query_driver_sqlite!(); use sea_query_driver_sqlite::bind_query; -use crate::{debug_print, error::*, executor::*, DatabaseConnection, Statement}; +use crate::{debug_print, error::*, executor::*, DatabaseConnection, DbBackend, Statement}; use super::sqlx_common::*; @@ -20,7 +20,7 @@ pub struct SqlxSqlitePoolConnection { impl SqlxSqliteConnector { pub fn accepts(string: &str) -> bool { - string.starts_with("sqlite:") + DbBackend::Sqlite.is_prefix_of(string) } pub async fn connect(string: &str) -> Result { diff --git a/src/entity/column.rs b/src/entity/column.rs index 91d34bab..32500630 100644 --- a/src/entity/column.rs +++ b/src/entity/column.rs @@ -438,14 +438,8 @@ mod tests { impl ActiveModelBehavior for ActiveModel {} } - assert_eq!( - hello::Column::One.def(), - ColumnType::Integer.def() - ); - assert_eq!( - hello::Column::Two.def(), - ColumnType::Integer.def().unique() - ); + assert_eq!(hello::Column::One.def(), ColumnType::Integer.def()); + assert_eq!(hello::Column::Two.def(), ColumnType::Integer.def().unique()); assert_eq!( hello::Column::Three.def(), ColumnType::Integer.def().indexed()