diff --git a/test/db/__init__.py b/test/db/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/test/db/test_migrations.py b/test/db/test_migrations.py
new file mode 100644
index 0000000000000000000000000000000000000000..cdc6790bf29bbccfd5d928eaa64a00cfceba0918
--- /dev/null
+++ b/test/db/test_migrations.py
@@ -0,0 +1,16 @@
+import pytest
+from alembic.migration import MigrationContext
+from sqlalchemy import create_engine
+
+
+@pytest.mark.noautofixt()
+def test_migrations_no_branches(db_uri):
+    engine = create_engine(db_uri)
+    conn = engine.connect()
+    context = MigrationContext.configure(conn)
+
+    assert len(context.get_current_heads()) == 1, (
+        "\n\n!!!\n\nDetected a branching of db migrations. This is caused by multiple `down_revision`s referring to the"
+        " same migration.\n\nPlease resolve this by updating either one of these migrations: "
+        f"{context.get_current_heads()}.\n\n!!!\n\n"
+    )
diff --git a/tox.ini b/tox.ini
index 02437f720ac1159df27281b195faf1f44ff7ed70..de7627e2dd6ed3c6700daff2e5016d50e4128ba0 100644
--- a/tox.ini
+++ b/tox.ini
@@ -13,7 +13,7 @@ deps =
     -r requirements.txt
 
 commands =
-    ruff --respect-gitignore --preview .
+    ruff check --respect-gitignore --preview .
     ruff format --respect-gitignore --preview --check .
     mypy .
     coverage erase