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 { };