essential_app_utils/
db.rs

1use essential_builder_db as builder_db;
2use essential_node as node;
3
4pub struct Dbs {
5    pub builder: builder_db::ConnectionPool,
6    pub node: node::db::ConnectionPool,
7}
8
9pub async fn new_dbs() -> Dbs {
10    let config = node::db::pool::Config {
11        source: node::db::pool::Source::Memory(uuid::Uuid::new_v4().to_string()),
12        ..Default::default()
13    };
14    let node = node::db::ConnectionPool::with_tables(&config).unwrap();
15    init_node_db(&node).await.unwrap();
16    let config = builder_db::pool::Config {
17        source: builder_db::pool::Source::Memory(uuid::Uuid::new_v4().to_string()),
18        ..Default::default()
19    };
20    let builder = builder_db::ConnectionPool::with_tables(&config).unwrap();
21    Dbs { builder, node }
22}
23
24pub async fn init_node_db(db: &node::db::ConnectionPool) -> anyhow::Result<()> {
25    let big_bang = essential_node_types::BigBang::default();
26
27    essential_node::ensure_big_bang_block(db, &big_bang).await?;
28    Ok(())
29}