Today, I am using NixOps to deploy a custom application to a physical server.
I also package a Sqitch project that contains my PostgreSQL schema changes that are necessary for the custom application to work. This package is used by a systemd service that is automatically started when my custom application starts. It works like a charm.
In this process, the application source code is compiled on the deployment machine and only the binaries are send over to the target server. The source code is not revealed in the nix store of the target server.
I would like to know if there is a way with NixOps to do the same for database changes. Instead of bundling the SQL scripts of the schema changes and revealing the database structure via the nix store, is there a way to bundle everything on the deployment machine and perform the database changes from the deployment machine? Maybe with a deploy hook?