diff --git a/guix-data-service/config.scm.in b/guix-data-service/config.scm.in index 9941fca..22c399e 100644 --- a/guix-data-service/config.scm.in +++ b/guix-data-service/config.scm.in @@ -57,7 +57,7 @@ (sqitch-plan . ,(let ((installed-plan "@prefix@/share/guix-data-service/sqitch/sqitch.plan") (dev-plan - (string-append (getcwd) "/sqitch/sqitch.plan"))) + "@abs_top_builddir@/sqitch/sqitch.plan")) (if (file-exists? installed-plan) installed-plan dev-plan))) diff --git a/scripts/guix-data-service.in b/scripts/guix-data-service.in index 33cf2b5..7eae735 100644 --- a/scripts/guix-data-service.in +++ b/scripts/guix-data-service.in @@ -141,7 +141,13 @@ (list (%config 'sqitch) "deploy" "--db-client" (%config 'sqitch-psql) - "--chdir" (dirname (dirname (%config 'sqitch-plan))) + ;; For some reason, sqitch behaves differently when the + ;; guix-data-service is packaged, and when it's not, so try + ;; and hack around this here. + "--chdir" (let ((base (dirname (%config 'sqitch-plan)))) + (if (string-prefix? "/gnu" (%config 'sqitch-plan)) + base + (dirname base))) "--plan-file" (%config 'sqitch-plan) "--mode" "change" ; this helps when migrations don't ; have the revert bit implemented