From 55b207b9b22a6c5eb8ff769bf640de0d95542b3d Mon Sep 17 00:00:00 2001 From: Reinier Maas Date: Fri, 24 Jul 2026 11:59:21 +0200 Subject: [PATCH] SQLX: Keep database in sync with migrations --- .pre-commit-config.yaml | 12 ++++++++++++ default.nix | 1 + opsqueue/opsqueue_example_database_schema.db | Bin 102400 -> 102400 bytes 3 files changed, 13 insertions(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index eb17abf1..ebe63fd7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -44,6 +44,18 @@ repos: language: system types: [nix] exclude: extra + - id: sqlx + name: SQLX Database up-to-date + entry: >- + bash -euo pipefail -c 'DB_URL="sqlite://./opsqueue/opsqueue_example_database_schema.db"; + if [[ -f ./opsqueue/opsqueue_example_database_schema.db ]]; then + sqlx migrate run --database-url "$DB_URL" --source ./migrations; + else + sqlx database setup --database-url "$DB_URL" --source ./migrations; + fi' + language: system + files: ^(migrations|opsqueue/migrations)/.*\.sql$ + pass_filenames: false - id: sqlx-test-needs-migrator name: Require `#[sqlx::test(migrator = "crate::MIGRATOR")]` for test-build speed entry: '#\[sqlx::test\]' diff --git a/default.nix b/default.nix index 2da1a739..d8facc39 100644 --- a/default.nix +++ b/default.nix @@ -32,6 +32,7 @@ let pkgs.biome pkgs.nixfmt pkgs.pre-commit + pkgs.python3Packages.identify pkgs.python3Packages.pre-commit-hooks pkgs.ruff pkgs.typos diff --git a/opsqueue/opsqueue_example_database_schema.db b/opsqueue/opsqueue_example_database_schema.db index ae49303b2d692551e8a9a018ee8a0af45eadaebf..83e09941a8e01e276a01805f785de1774aa7e3b4 100644 GIT binary patch delta 844 zcmZozz}B#UZGyC*Bm)Bj2#W(TGZ1S{)G=n2WYFvVy)k70zYGu8F9!Yv{H}a=`SN&w z@%Hm-@$BLW;J(J4!}V*kqQEV#`T`zyR(E609A=^1fSbxUic6DnGmDEe^YavPQ%e$4 z5=#;l3bGZFDiyL*D~$|{%ybRRb&X6E3@oioEv$@8XBq??+kMtfH~0x(E=#4v5!Fk@ zKaMnnFMF1u&y{v^pUs@hUj@3i31zOXe#u{Q;PBn z6p}Ma^RkQKc4D#V(E7x%c$x4=t_9U;lX}+tF?@Pn&o4mzP2ilAyM@zDx_5VlHo44Y zS#a8>*Cub%`;QF!76)v;CauRJ!^2<8!2gZ^HU9(ttNf?<_w#SzU&%j@e=>guf9+;P zg;;(uE@oCni2r$@%-jc-+?yxsS4`NMk%HM&dD4XSc8}Xwks$w)-o}%nNFXt#Q2B{7%xWRuG)-E{?pegF)B`9 zqs+LGg@J)7YQj}Pdnx2{L3ynzM!~!dY z{Jd0!vc#OyRE2`nB2c7)X@re>(-rj?6?x#+0#!`EsKqD=bTW(i_U&qnl1$8v4wBQi zsWIA4Ukh}~^xtZX)m%*>KyR3uGPZbwyrHYY>m20j7~-lB;^^e#s-T20AK@b delta 851 zcmZ8fO=uHA7~M&KQZ`8^5kvn(zqYY|rfI>SLr*E~RthDlNmM*&ne0xIC7a!KcQ&zt zv=z@<$zg9A>Pb+rMhNuc-J1t{6U3ul^q>b1>LewxILyHA$GrEw_r2M!^={XCcSk~D zK@f)cX|KrR==q+o5W8#cD>XbQ`VIwL!&3jpem(Fj@F+0jKk%>n4(p?E;Hw{w#JUGX zTov$7{1tz~AMiW;7QeyI@e^FFhvqA|UY)zM+cUt~2O6Pu^bPODgGc*y90eOFh`NHO z0%%z1zvcho`|Z=kFWz!*z5Ax0cI|kcq2UGqy65o-eeTmS^jX}wand^=okRDN?#nSW z>b@99``r)HC%i6+pzm%vjP%uMxVD=tYo? zlG&`;U|5hNs%9^=5G%=)w0b$=zM4Vd>YqM;1X9w9l#&ulQu+vLLoxx&(wdZ!U}-VE zw74v}XJROJItnGqh(Z|IDALVie`TUM)O|mLhP&b+Z=*4RhCEv^CEcEmwpFTZk}D~a zO<)Evi|BUFuu4F{xpVg#xu`OmstMQDmz#r9?6#Ex>gOilI+3uqopWo2}Hm4%|%()fStjGI4C$ z;146YPR~cM+>CP!)juHXxul~*vV3vYX(Ub_$SJq?pVCysB)1H$L4QA=Jxnp n#yhNB5&@G~OqCstSjQOL(HMVh4=0d6_