arachnys / cabot

Self-hosted, easily-deployable monitoring and alerts service - like a lightweight PagerDuty
MIT License
5.59k stars 594 forks source link

Create service throws IntegrityError with "is_public" field #548

Open JeanFred opened 7 years ago

JeanFred commented 7 years ago

When trying to add a service, I got IntegrityError: null value in column "is_public" violates not-null constraint

This is likely linked to cb2fc2e

Full stack trace:

ERROR 2017-09-04 15:29:04,018 exception 3622 139883218204416 Internal Server Error: /service/create/
Traceback (most recent call last):
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner
    response = get_response(request)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response
    response = self._get_response(request)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/views/generic/base.py", line 68, in view
    return self.dispatch(request, *args, **kwargs)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/utils/decorators.py", line 67, in _wrapper
    return bound_func(*args, **kwargs)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/utils/decorators.py", line 63, in bound_func
    return func.__get__(self, type(self))(*args2, **kwargs2)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/cabot/cabotapp/views.py", line 40, in dispatch
    return super(LoginRequiredMixin, self).dispatch(*args, **kwargs)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/views/generic/base.py", line 88, in dispatch
    return handler(request, *args, **kwargs)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/views/generic/edit.py", line 217, in post
    return super(BaseCreateView, self).post(request, *args, **kwargs)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/views/generic/edit.py", line 183, in post
    return self.form_valid(form)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/views/generic/edit.py", line 162, in form_valid
    self.object = form.save()
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/forms/models.py", line 451, in save
    self.instance.save()
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/db/models/base.py", line 806, in save
    force_update=force_update, update_fields=update_fields)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/db/models/base.py", line 836, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/db/models/base.py", line 922, in _save_table
    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/db/models/base.py", line 961, in _do_insert
    using=using, raw=raw)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/db/models/query.py", line 1060, in _insert
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 1099, in execute_sql
    cursor.execute(sql, params)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 65, in execute
    return self.cursor.execute(sql, params)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/home/ubuntu/cabot.venv/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 65, in execute
    return self.cursor.execute(sql, params)
IntegrityError: null value in column "is_public" violates not-null constraint
DETAIL:  Failing row contains (131, Service, https://myservice.acme.com/, null, f, t, f, f, t, PASSING, PASSING, , , null).
dbuxton commented 7 years ago

Can we just put a default on that column?