commit 881c1978eb8e2eaea2467e6b3bf79d2d91196ec1 parent 662bc2752345ef37cb394b2dd709b269dab86fd1 Author: Daniel GarcĂa <dani-garcia@users.noreply.github.com> Date: Tue, 8 Oct 2019 19:34:47 +0200 Error when the URL scheme doesn't match the database type Diffstat:
M | src/config.rs | | | 20 | ++++++++++++++++++++ |
1 file changed, 20 insertions(+), 0 deletions(-)
diff --git a/src/config.rs b/src/config.rs @@ -366,6 +366,26 @@ make_config! { } fn validate_config(cfg: &ConfigItems) -> Result<(), Error> { + let db_url = cfg.database_url.to_lowercase(); + + if cfg!(feature = "sqlite") { + if db_url.starts_with("mysql:") || db_url.starts_with("postgresql:") { + err!("`DATABASE_URL` is meant for MySQL or Postgres, while this server is meant for SQLite") + } + } + + if cfg!(feature = "mysql") { + if !db_url.starts_with("mysql:") { + err!("`DATABASE_URL` should start with mysql: when using the MySQL server") + } + } + + if cfg!(feature = "postgresql") { + if !db_url.starts_with("postgresql:") { + err!("`DATABASE_URL` should start with postgresql: when using the PostgreSQL server") + } + } + if let Some(ref token) = cfg.admin_token { if token.trim().is_empty() { err!("`ADMIN_TOKEN` is enabled but has an empty value. To enable the admin page without token, use `DISABLE_ADMIN_TOKEN`")