diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 6402712864a0..1cdce85531c9 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -7041,6 +7041,12 @@
githubId = 628342;
name = "Tim Steinbach";
};
+ netcrns = {
+ email = "jason.wing@gmx.de";
+ github = "netcrns";
+ githubId = 34162313;
+ name = "Jason Wing";
+ };
netixx = {
email = "dev.espinetfrancois@gmail.com";
github = "netixx";
diff --git a/pkgs/development/tools/database/movine/default.nix b/pkgs/development/tools/database/movine/default.nix
new file mode 100644
index 000000000000..fd5debcb9a20
--- /dev/null
+++ b/pkgs/development/tools/database/movine/default.nix
@@ -0,0 +1,54 @@
+{ rustPlatform
+, fetchFromGitHub
+, lib
+, stdenv
+, pkg-config
+, postgresql
+, sqlite
+, openssl
+, Security
+, libiconv
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "movine";
+ version = "0.11.0";
+
+ src = fetchFromGitHub {
+ owner = "byronwasti";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0rms8np8zd23xzrd5avhp2q1ndhdc8f49lfwpff9h0slw4rnzfnj";
+ };
+
+ cargoSha256 = "sha256-4ghfenwmauR4Ft9n7dvBflwIMXPdFq1vh6FpIegHnZk=";
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ postgresql sqlite ] ++ (
+ if !stdenv.isDarwin then [ openssl ] else [ Security libiconv ]
+ );
+
+ meta = with lib; {
+ description = "A migration manager written in Rust, that attempts to be smart yet minimal";
+ homepage = "https://github.com/byronwasti/movine";
+ license = licenses.mit;
+ longDescription = ''
+ Movine is a simple database migration manager that aims to be compatible
+ with real-world migration work. Many migration managers get confused
+ with complicated development strategies for migrations. Oftentimes
+ migration managers do not warn you if the SQL saved in git differs from
+ what was actually run on the database. Movine solves this issue by
+ keeping track of the unique hashes for the up.sql and
+ down.sql for each migration, and provides tools for
+ fixing issues. This allows users to easily keep track of whether their
+ local migration history matches the one on the database.
+
+ This project is currently in early stages.
+
+ Movine does not aim to be an ORM.
+ Consider diesel instead if
+ you want an ORM.
+ '';
+ maintainers = with maintainers; [ netcrns ];
+ };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index fed1bd5233cb..ecf7c8177ab9 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -16641,6 +16641,10 @@ in
mono-addins = callPackage ../development/libraries/mono-addins { };
+ movine = callPackage ../development/tools/database/movine {
+ inherit (darwin.apple_sdk.frameworks) Security;
+ };
+
movit = callPackage ../development/libraries/movit { };
mosquitto = callPackage ../servers/mqtt/mosquitto { };