From 2e7019782581d61bfd89a1c56f6398ef897eca76 Mon Sep 17 00:00:00 2001 From: Klaas van Schelven Date: Mon, 9 Sep 2024 15:31:14 +0200 Subject: [PATCH] Add check_migrations command this way, at least in the Docker setup, you'll get a meaningful error when you try to start up a half-baked server --- Dockerfile | 2 +- .../management/commands/check_migrations.py | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 ingest/management/commands/check_migrations.py diff --git a/Dockerfile b/Dockerfile index 40b27f7..073acf1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,4 +32,4 @@ RUN ["bugsink-manage", "migrate", "snappea", "--database=snappea"] EXPOSE 8000 -CMD [ "monofy", "bugsink-manage", "check", "--deploy", "--fail-level", "WARNING", "&&", "gunicorn", "--bind=0.0.0.0:8000", "--workers=10", "--access-logfile", "-", "bugsink.wsgi", "|||", "bugsink-runsnappea"] +CMD [ "monofy", "bugsink-manage", "check_migrations", "&&", "bugsink-manage", "check", "--deploy", "--fail-level", "WARNING", "&&", "gunicorn", "--bind=0.0.0.0:8000", "--workers=10", "--access-logfile", "-", "bugsink.wsgi", "|||", "bugsink-runsnappea"] diff --git a/ingest/management/commands/check_migrations.py b/ingest/management/commands/check_migrations.py new file mode 100644 index 0000000..caf074e --- /dev/null +++ b/ingest/management/commands/check_migrations.py @@ -0,0 +1,24 @@ +from django.core.management import call_command +from django.core.management.base import BaseCommand + + +class Command(BaseCommand): + help = "Calls `migrate` with `check_unapplied=True` to check for unapplied migrations (2 DBs, adds error message)" + + def handle(self, *args, **options): + try: + call_command('migrate', check_unapplied=True) + except SystemExit: + self.stdout.write(self.style.ERROR( + "You have unapplied migrations. Make sure to call `bugsink-manage migrate` before running the server." + )) + raise + + try: + call_command('migrate', "snappea", check_unapplied=True, database="snappea") + except SystemExit: + self.stdout.write(self.style.ERROR( + "You have unapplied migrations. Make sure to call `bugsink-manage migrate snappea --database=snappea` " + "before running the server." + )) + raise