pub struct Config { /* private fields */ }Expand description
A loaded drizzle.config.toml.
Holds one database or several named ones:
Single database:
dialect = "sqlite"
[dbCredentials]
url = "./dev.db"Multiple databases:
[databases.dev]
dialect = "sqlite"
[databases.dev.dbCredentials]
url = "./dev.db"
[databases.prod]
dialect = "postgresql"
[databases.prod.dbCredentials]
url = { env = "DATABASE_URL" }Implementations§
Source§impl Config
impl Config
Sourcepub fn load() -> Result<Self, Error>
pub fn load() -> Result<Self, Error>
Loads CONFIG_FILE from the current directory.
§Errors
Returns Error if the file cannot be read, is not valid TOML for
the config, or fails validation.
Sourcepub fn load_from(path: &Path) -> Result<Self, Error>
pub fn load_from(path: &Path) -> Result<Self, Error>
Loads a config file from path.
Relative paths inside the file (schema, out, …) are resolved
against the file’s folder.
§Examples
use drizzle_cli::{Config, Dialect};
let dir = std::env::temp_dir().join("drizzle-cli-doc-load-from");
std::fs::create_dir_all(&dir)?;
let path = dir.join("drizzle.config.toml");
std::fs::write(&path, r#"
dialect = "sqlite"
schema = "src/schema.rs"
out = "./drizzle"
[dbCredentials]
url = "./dev.db"
"#)?;
let config = Config::load_from(&path)?;
assert!(config.is_single_database());
assert_eq!(config.dialect(), Dialect::Sqlite);§Errors
Returns Error::NotFound if path does not exist, Error::Io for
other read errors, Error::Parse for invalid TOML, and other
Error variants when validation fails (for example a driver that
does not match the dialect).
Sourcepub const fn is_single_database(&self) -> bool
pub const fn is_single_database(&self) -> bool
Returns true for a single-database config (no [databases.*]).
Sourcepub fn database_names(&self) -> impl Iterator<Item = &str>
pub fn database_names(&self) -> impl Iterator<Item = &str>
Returns the configured database names ("default" for a
single-database config).
Sourcepub fn database(&self, name: Option<&str>) -> Result<&DatabaseConfig, Error>
pub fn database(&self, name: Option<&str>) -> Result<&DatabaseConfig, Error>
Returns the database named name, or the only one when name is
None.
A single-database config ignores name and always returns its
database.
§Errors
Returns Error::NoDatabases if the config has no databases,
Error::DatabaseNotFound if name does not match any configured
database, or Error::DatabaseRequired if multiple databases exist
and no name was supplied.
Sourcepub fn default_database(&self) -> Result<&DatabaseConfig, Error>
pub fn default_database(&self) -> Result<&DatabaseConfig, Error>
Returns the only database, or an error when there are several.
§Errors
Returns the same errors as Self::database invoked with None.
Sourcepub fn dialect(&self) -> Dialect
pub fn dialect(&self) -> Dialect
Returns the default database’s dialect (single-database shortcut).
Sourcepub fn credentials(&self) -> Result<Option<Credentials>, Error>
pub fn credentials(&self) -> Result<Option<Credentials>, Error>
Returns the default database’s credentials (single-database shortcut).
§Errors
Returns Error if resolving the default database or its credentials
fails (see Self::default_database and DatabaseConfig::credentials).
Sourcepub fn migrations_dir(&self) -> &Path
pub fn migrations_dir(&self) -> &Path
Returns the default database’s migrations folder (single-database shortcut).
Sourcepub fn journal_path(&self) -> PathBuf
pub fn journal_path(&self) -> PathBuf
Returns the default database’s legacy meta/_journal.json path
(single-database shortcut).
Sourcepub fn schema_display(&self) -> String
pub fn schema_display(&self) -> String
Returns the default database’s schema paths for display (single-database shortcut).
Sourcepub fn schema_files(&self) -> Result<Vec<PathBuf>, Error>
pub fn schema_files(&self) -> Result<Vec<PathBuf>, Error>
Returns the default database’s resolved schema files (single-database shortcut).
§Errors
Returns Error if resolving the default database fails or if
resolving its schema files fails (see DatabaseConfig::schema_files).
Sourcepub fn base_dialect(&self) -> Dialect
pub fn base_dialect(&self) -> Dialect
Returns the default database’s base SQL dialect (Turso maps to SQLite).