diff --git a/sea-orm-cli/README.md b/sea-orm-cli/README.md index f5c64e52..531a3c46 100644 --- a/sea-orm-cli/README.md +++ b/sea-orm-cli/README.md @@ -9,5 +9,9 @@ cargo run -- -h Running Entity Generator: ```sh -cargo run -- generate entity -u mysql://sea:sea@localhost/bakery -s bakery -o out +# MySQL (`--database-schema` option is ignored) +cargo run -- generate entity -u mysql://sea:sea@localhost/bakery -o out + +# PostgreSQL +cargo run -- generate entity -u postgres://sea:sea@localhost/bakery -s public -o out ``` diff --git a/sea-orm-cli/src/cli.rs b/sea-orm-cli/src/cli.rs index de0313c2..c286ef15 100644 --- a/sea-orm-cli/src/cli.rs +++ b/sea-orm-cli/src/cli.rs @@ -21,8 +21,10 @@ pub fn build_cli() -> App<'static, 'static> { .long("database-schema") .short("s") .help("Database schema") + .long_help("Database schema\n \ + - For MySQL, this argument is ignored.\n \ + - For PostgreSQL, this argument is optional with default value 'public'.") .takes_value(true) - .required(true) .env("DATABASE_SCHEMA"), ) .arg( diff --git a/sea-orm-cli/src/main.rs b/sea-orm-cli/src/main.rs index 9a512050..377106ec 100644 --- a/sea-orm-cli/src/main.rs +++ b/sea-orm-cli/src/main.rs @@ -23,13 +23,14 @@ async fn run_generate_command(matches: &ArgMatches<'_>) -> Result<(), Box { let url = args.value_of("DATABASE_URL").unwrap(); - let schema = args.value_of("DATABASE_SCHEMA").unwrap(); let output_dir = args.value_of("OUTPUT_DIR").unwrap(); let table_stmts = if url.starts_with("mysql://") { use sea_schema::mysql::discovery::SchemaDiscovery; use sqlx::MySqlPool; + let url_parts: Vec<&str> = url.split("/").collect(); + let schema = url_parts.last().unwrap(); let connection = MySqlPool::connect(url).await?; let schema_discovery = SchemaDiscovery::new(connection, schema); let schema = schema_discovery.discover().await; @@ -42,6 +43,7 @@ async fn run_generate_command(matches: &ArgMatches<'_>) -> Result<(), Box