mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-19 08:01:25 +00:00
47 lines
1.3 KiB
Rust
47 lines
1.3 KiB
Rust
use pg_embed::pg_enums::PgAuthMethod;
|
|
use pg_embed::pg_fetch::PgFetchSettings;
|
|
use pg_embed::postgres::{PgEmbed, PgSettings};
|
|
use std::path::PathBuf;
|
|
use std::time::Duration;
|
|
|
|
pub async fn start() -> anyhow::Result<(String, PgEmbed)> {
|
|
let pg_settings = PgSettings {
|
|
database_dir: PathBuf::from("/tmp/db"),
|
|
port: 6543,
|
|
user: "postgres".to_string(),
|
|
password: "password".to_string(),
|
|
auth_method: PgAuthMethod::Plain,
|
|
persistent: false,
|
|
timeout: Some(Duration::from_secs(15)),
|
|
migration_dir: None,
|
|
};
|
|
|
|
let fetch_settings = PgFetchSettings {
|
|
version: pg_embed::pg_fetch::PostgresVersion("15.3.0"),
|
|
|
|
..Default::default()
|
|
};
|
|
|
|
tracing::info!(
|
|
"Fetch settings: {:?} {:?}",
|
|
fetch_settings.operating_system,
|
|
fetch_settings.architecture
|
|
);
|
|
|
|
let mut pg = PgEmbed::new(pg_settings, fetch_settings).await?;
|
|
|
|
pg.setup().await.expect("pg setup");
|
|
|
|
pg.start_db().await.expect("pg start db");
|
|
|
|
//TODO: re-enable this to make it work
|
|
// if !pg.database_exists("windmill").await.expect("db exists") {
|
|
// pg.create_database("windmill")
|
|
// .await
|
|
// .expect("pg create database");
|
|
// }
|
|
|
|
let uri = pg.full_db_uri("windmill");
|
|
Ok((uri, pg))
|
|
}
|