sql: check card/formdef tables integrity (#78196) #1343
Loading…
Reference in New Issue
No description provided.
Delete Branch "wip/78196-sql-integrity"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
3012ef6288
tob95a07045e
b95a07045e
to39fe384caa
@ -588,2 +589,4 @@
return (self.fields or []) + self.workflow.get_backoffice_fields()
def get_all_fields_dict(self):
return {x.id: x for x in self.get_all_fields()}
Utilisé dans le template, pour obtenir le libellé du champ selon son id.
@ -557,0 +562,4 @@
'varchar': 'character varying',
'text[]': 'ARRAY',
'text[][]': 'ARRAY',
}.get(sql_type) or sql_type
Je découvre que dans la colonne data_type l'info n'est pas complète, pas moyen de différencier text[] de text[][] les deux donnent ARRAY, tant pis on fait avec.
@ -557,0 +564,4 @@
'text[][]': 'ARRAY',
}.get(sql_type) or sql_type
if existing_type != expected_type:
field_integrity_errors[str(field.id)] = {'got': existing_type, 'expected': expected_type}
On se contente d'enregistrer l'existence d'erreurs; avec les uuid généralisés ça ne devrait plus arriver, c'est surtout historique.
WIP: sql: check card/formdef tables integrity (#78196)to sql: check card/formdef tables integrity (#78196)@ -2337,0 +2341,4 @@
if formdef.sql_integrity_errors:
# print errors, this will get them in the cron output, that hopefully
# a sysadmin will read.
print(f'! Integrity errors in {formdef.get_admin_url()}')
En imaginant que ça va saouler de recevoir ces mails, que ça motivera à aller corriger.
@ -35,6 +35,7 @@
</div>
{{ publisher.get_request.session.display_message|safe }}
{% include "wcs/backoffice/includes/sql-fields-integrity.html" %}
On affiche l'existence d'erreur directement sur la page de la démarche, qu'elles (nous) soient signalées au plus tôt.