Skip to main content

Config

Struct Config 

Source
pub struct Config { /* private fields */ }
Expand description

Main configuration structure

Supports both single-database (legacy) and multi-database configurations:

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

Source

pub fn load() -> Result<Self, Error>

Load from default config file.

§Errors

Returns Error if the default config file cannot be read, if it fails to parse as JSON, or if validation of the parsed config fails.

Source

pub fn load_from(path: &Path) -> Result<Self, Error>

Load from specific path.

§Errors

Returns Error::NotFound if path does not exist, Error::Io for other read errors, and Error variants for JSON-parse or validation failures.

Source

pub const fn is_single_database(&self) -> bool

Check if this is a single-database config

Source

pub fn database_names(&self) -> impl Iterator<Item = &str>

Get all database names

Source

pub fn database(&self, name: Option<&str>) -> Result<&DatabaseConfig, Error>

Get a specific database config by name.

If name is None, returns the default/only database. For single-db configs, any name or None returns the single 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.

Source

pub fn default_database(&self) -> Result<&DatabaseConfig, Error>

Get the default database (for single-db mode or when only one db exists).

§Errors

Returns the same errors as Self::database invoked with None.

Source

pub fn dialect(&self) -> Dialect

Get dialect (for single-db mode backwards compat)

Source

pub fn credentials(&self) -> Result<Option<Credentials>, Error>

Get credentials (for single-db mode backwards compat).

§Errors

Returns Error if resolving the default database or its credentials fails (see Self::default_database and DatabaseConfig::credentials).

Source

pub fn migrations_dir(&self) -> &Path

Get migrations directory (for single-db mode backwards compat)

Source

pub fn journal_path(&self) -> PathBuf

Get journal path (for single-db mode backwards compat)

Source

pub fn schema_display(&self) -> String

Get schema display (for single-db mode backwards compat)

Source

pub fn schema_files(&self) -> Result<Vec<PathBuf>, Error>

Get schema files (for single-db mode backwards compat).

§Errors

Returns Error if resolving the default database fails or if resolving its schema files fails (see DatabaseConfig::schema_files).

Source

pub fn base_dialect(&self) -> Dialect

Base dialect for SQL generation (for single-db mode backwards compat)

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Config

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Config

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.