diff --git a/crates/migrate/build.rs b/crates/migrate/build.rs index 80829b0d..eaaa156c 100644 --- a/crates/migrate/build.rs +++ b/crates/migrate/build.rs @@ -8,10 +8,11 @@ use std::{ fn main() -> Result<(), Box> { let out_dir = env::var("OUT_DIR")?; + let manifest_dir = env::var("CARGO_MANIFEST_DIR")?; let dest_path = Path::new(&out_dir).join("data.rs"); let mut datafile = File::create(&dest_path)?; - let prefix = "../../../../../../crates/migrate/data"; + let prefix = manifest_dir + "/data"; let ct = fs::read_dir("data/migrations")? .filter(|p| { diff --git a/flake.nix b/flake.nix index cbe6b013..8fd2ed6b 100644 --- a/flake.nix +++ b/flake.nix @@ -195,6 +195,22 @@ # TODO: add liveness check ready_log_line = "Received Ready"; }; + ### migrations ### + pluralkit-migrate-init = mkServiceInitProcess { + name = "migrate"; + }; + pluralkit-migrate = { + command = pkgs.writeShellApplication { + name = "pluralkit-migrate"; + text = '' + ${sourceDotenv} + set -x + exec target/debug/migrate + ''; + }; + depends_on.postgres.condition = "process_healthy"; + depends_on.pluralkit-migrate-init.condition = "process_completed_successfully"; + }; ### gateway ### pluralkit-gateway-init = mkServiceInitProcess { name = "gateway";