Fix GetAllMeasurementsCronJob errors violating not-null constraint
The hourly CronJob that copies all data from the slave servers in production is repeatedly returning erro with null values. It might be the case of investigating the sige-slave.
The following examples where taken running the function get_measurements
from the Django Console slaves/cronjob.py
espcifically on the quarterly and monthly measurements:
1. collector.get_measurements(quarterly=True)
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 86, in _execute
return self.cursor.execute(sql, params)
psycopg2.errors.NotNullViolation: null value in column "inductive_power_off_peak_time" violates not-null constraint
DETAIL: Failing row contains (184763, 2021-06-08 15:30:00-03, 0, 924.177978515625, 0, 1392.90625, 0, null, 0, null, 12, 13, null).
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/smi-master/slaves/utils.py", line 325, in get_measurements
msm, transductor
File "/smi-master/slaves/utils.py", line 170, in build_quarterly_measurements
tax=Tax.objects.last()
File "/usr/local/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 433, in create
obj.save(force_insert=True, using=self.db)
File "/usr/local/lib/python3.6/site-packages/polymorphic/models.py", line 93, in save
return super(PolymorphicModel, self).save(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 746, in save
force_update=force_update, update_fields=update_fields)
File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 784, in save_base
force_update, using, update_fields,
File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 887, in _save_table
results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw)
File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 926, in _do_insert
using=using, raw=raw,
File "/usr/local/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 1204, in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
File "/usr/local/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1384, in execute_sql
cursor.execute(sql, params)
File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 100, in execute
return super().execute(sql, params)
File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 68, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 86, in _execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.6/site-packages/django/db/utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 86, in _execute
return self.cursor.execute(sql, params)
django.db.utils.IntegrityError: null value in column "inductive_power_off_peak_time" violates not-null constraint
DETAIL: Failing row contains (184763, 2021-06-08 15:30:00-03, 0, 924.177978515625, 0, 1392.90625, 0, null, 0, null, 12, 13, null).
2. collector.get_measurements(monthly=True)
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 86, in _execute
return self.cursor.execute(sql, params)
psycopg2.errors.NotNullViolation: null value in column "consumption_peak_time" violates not-null constraint
DETAIL: Failing row contains (108, 2021-08-01 00:00:00-03, 0, 0, null, null, null, null, null, null, 0, 0, 7175.4921875, 7975.109375, {}, {}, {}, {$, {7175.4921875,5424.6591796875,5296.912109375,4719.66015625}, {"2021-08-09 19:00:00-03","2021-08-11 18:30:00-03","2021-08-05 1..., {7975.109375,147$.43139648438,375.5537109375}, {"2021-08-07 19:30:00-03","2021-08-07 19:00:00-03","2021-08-07 1..., 11, 6).
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/smi-master/slaves/utils.py", line 348, in get_measurements
msm, transductor
File "/smi-master/slaves/utils.py", line 112, in build_monthly_measurements
transductor_id=transductor.id
File "/usr/local/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 433, in create
obj.save(force_insert=True, using=self.db)
File "/usr/local/lib/python3.6/site-packages/polymorphic/models.py", line 93, in save
return super(PolymorphicModel, self).save(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 746, in save
force_update=force_update, update_fields=update_fields)
File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 784, in save_base
force_update, using, update_fields,
File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 887, in _save_table
results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw)
File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 926, in _do_insert
using=using, raw=raw,
File "/usr/local/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 1204, in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
File "/usr/local/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1384, in execute_sql
cursor.execute(sql, params)
File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 100, in execute
return super().execute(sql, params)
File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 68, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 86, in _execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.6/site-packages/django/db/utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 86, in _execute
return self.cursor.execute(sql, params)
django.db.utils.IntegrityError: null value in column "consumption_peak_time" violates not-null constraint
DETAIL: Failing row contains (108, 2021-08-01 00:00:00-03, 0, 0, null, null, null, null, null, null, 0, 0, 7175.4921875, 7975.109375, {}, {}, {}, {}
, {7175.4921875,5424.6591796875,5296.912109375,4719.66015625}, {"2021-08-09 19:00:00-03","2021-08-11 18:30:00-03","2021-08-05 1..., {7975.109375,1477
.43139648438,375.5537109375}, {"2021-08-07 19:30:00-03","2021-08-07 19:00:00-03","2021-08-07 1..., 11, 6).