mithril_persistence/database/
mod.rs

1//! database module.
2//! This module contains queries and entities shared between all application types.
3
4pub mod cardano_transaction_migration;
5mod db_version;
6mod hydrator;
7pub(crate) mod query;
8pub mod record;
9pub mod repository;
10mod version_checker;
11
12pub use db_version::*;
13pub use hydrator::Hydrator;
14pub use version_checker::{DatabaseVersionChecker, SqlMigration};
15
16/// Database version.
17pub type DbVersion = i64;
18
19#[cfg(test)]
20pub(crate) mod test_helper {
21    use sqlite::ConnectionThreadSafe;
22
23    use mithril_common::StdResult;
24
25    use crate::sqlite::{ConnectionBuilder, ConnectionOptions};
26
27    /// In-memory sqlite database without foreign key support with cardano db migrations applied
28    pub fn cardano_tx_db_connection() -> StdResult<ConnectionThreadSafe> {
29        let connection = ConnectionBuilder::open_memory()
30            .with_options(&[ConnectionOptions::ForceDisableForeignKeys])
31            .with_migrations(crate::database::cardano_transaction_migration::get_migrations())
32            .build()?;
33        Ok(connection)
34    }
35}