Skip to main content

MonarchDB

Struct MonarchDB 

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

MonarchDB manages schema migrations and new connections for a database.

Implementations§

Source§

impl MonarchDB

Source

pub fn open_in_memory(&self) -> Result<Connection>

Creates a new in-memory SQLite database connection with migrations applied.

This is useful for testing or for applications that need a temporary database. All migrations will be automatically applied to the in-memory database.

§Returns

Returns a rusqlite::Result<Connection> with migrations applied on success.

Source

pub fn from_configuration(configuration: MonarchConfiguration) -> Result<Self>

Creates a new MonarchDB instance from a configuration that loads migrations from disk.

This reads all migration files from the specified directory and creates a MonarchDB instance that can be used to manage database connections and schema migrations.

§Arguments
  • configuration - A MonarchConfiguration containing the migration directory path, database name, and foreign key settings.
§Returns

Returns a io::Result<Self> containing the configured MonarchDB instance.

§Errors

This function will return an error if:

  • The migration directory cannot be read
  • Any migration file cannot be read
  • File system operations fail
Source

pub fn current_version(&self) -> u32

Returns the current schema version, which is the number of migrations available.

This represents the latest version that the database schema can be migrated to.

§Returns

Returns the number of migrations as a u32.

Source

pub fn create_connection( &self, configuration: &ConnectionConfiguration, ) -> Result<Connection>

Creates a new SQLite database connection with migrations applied.

If a database path is specified in the configuration, opens that file. Otherwise, creates an in-memory database. All migrations will be automatically applied to ensure the schema is up to date.

§Arguments
  • configuration - A ConnectionConfiguration specifying the database path. If database is None, an in-memory database will be created.
§Returns

Returns a rusqlite::Result<Connection> with migrations applied on success.

Source

pub fn migrate(&self, connection: Connection) -> Result<Connection>

Applies all necessary migrations to an existing database connection.

This method takes ownership of a connection and returns it after applying all migrations to bring the schema up to the current version. It will also configure foreign key constraints if enabled.

§Arguments
  • connection - An existing SQLite connection to migrate.
§Returns

Returns the connection with migrations applied on success.

Source

pub fn migrations<'c>( &'c self, connection: &'c mut Connection, ) -> Migrations<'c>

Create a migration manager for the given connection.

This method initializes a new Migrations instance, which can be used to apply migrations to the provided connection.

Trait Implementations§

Source§

impl Debug for MonarchDB

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<const N: usize> From<StaticMonarchConfiguration<N>> for MonarchDB

Source§

fn from(configuration: StaticMonarchConfiguration<N>) -> Self

Converts to this type from the input type.

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, 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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more