forked from GithubBackups/healthchecks
Warn about obsolete update_alert_after
trigger.
This commit is contained in:
parent
fdc1bfcd57
commit
c6d5e64286
@ -52,11 +52,10 @@ in development environment.
|
|||||||
$ psql --user postgres
|
$ psql --user postgres
|
||||||
postgres=# create database hc;
|
postgres=# create database hc;
|
||||||
|
|
||||||
* create database tables, triggers, superuser:
|
* create database tables and the superuser account:
|
||||||
|
|
||||||
$ cd ~/webapps/healthchecks
|
$ cd ~/webapps/healthchecks
|
||||||
$ ./manage.py migrate
|
$ ./manage.py migrate
|
||||||
$ ./manage.py ensuretriggers
|
|
||||||
$ ./manage.py createsuperuser
|
$ ./manage.py createsuperuser
|
||||||
|
|
||||||
* run development server:
|
* run development server:
|
||||||
|
@ -22,6 +22,7 @@ def _sqlite(cursor):
|
|||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
help = 'Drops the `update_alert_after` trigger'
|
help = 'Drops the `update_alert_after` trigger'
|
||||||
|
requires_system_checks = False
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
with connection.cursor() as cursor:
|
with connection.cursor() as cursor:
|
||||||
|
@ -7,6 +7,7 @@ from datetime import datetime, timedelta as td
|
|||||||
|
|
||||||
from croniter import croniter
|
from croniter import croniter
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django.core.checks import Warning
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
@ -164,6 +165,29 @@ class Check(models.Model):
|
|||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def check(cls, **kwargs):
|
||||||
|
errors = super(Check, cls).check(**kwargs)
|
||||||
|
|
||||||
|
trigger_detected = False
|
||||||
|
try:
|
||||||
|
dummy = Check(last_ping=timezone.now())
|
||||||
|
dummy.save()
|
||||||
|
dummy.refresh_from_db()
|
||||||
|
trigger_detected = bool(dummy.alert_after)
|
||||||
|
dummy.delete()
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if trigger_detected:
|
||||||
|
err = Warning(
|
||||||
|
"Obsolete 'update_alert_after' trigger exists in database.",
|
||||||
|
hint="Please remove the trigger with 'manage.py droptriggers'",
|
||||||
|
id="hc.api.E001")
|
||||||
|
errors.append(err)
|
||||||
|
|
||||||
|
return errors
|
||||||
|
|
||||||
|
|
||||||
class Ping(models.Model):
|
class Ping(models.Model):
|
||||||
n = models.IntegerField(null=True)
|
n = models.IntegerField(null=True)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user