Schema reconciliation + index hygiene, and the weekly base-image refresh #243
@@ -29,13 +29,15 @@ guarantee built from different objects, which is why the two schemas did not
|
||||
line up. The model now declares the constraint and the plain index separately,
|
||||
so it describes what is actually there. No DDL is needed for it.
|
||||
|
||||
Also here: four CHECK constraints whose names carry their table prefix TWICE.
|
||||
Also here: six CHECK constraints whose names carry their table prefix TWICE.
|
||||
|
||||
`base.py`'s naming convention is `ck_%(table_name)s_%(constraint_name)s`, and
|
||||
unlike the uq/fk/ix entries it applies even to a constraint that already has a
|
||||
name. Four migrations passed an already-prefixed name, so the convention
|
||||
name. Six migrations passed an already-prefixed name, so the convention
|
||||
prefixed it again:
|
||||
|
||||
ck_external_link_ck_external_link_host
|
||||
ck_external_link_ck_external_link_status
|
||||
ck_import_settings_ck_import_settings_singleton
|
||||
ck_ml_settings_ck_ml_settings_singleton
|
||||
ck_post_ck_post_translation_override
|
||||
@@ -67,7 +69,17 @@ branch_labels: Union[str, Sequence[str], None] = None
|
||||
depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
# (table, doubled name, single-prefix name)
|
||||
#
|
||||
# Six, not the four a first read of the migrations turned up. The list that
|
||||
# settles it is the one extracted from the chain's pg_dump by matching
|
||||
# `ck_(\w+?)_ck_\1_` — reading the migrations by eye missed external_link
|
||||
# twice over, in the same way an earlier pass missed a UNIQUE constraint two
|
||||
# lines above the index it was looking at (see the sha256 note above).
|
||||
DOUBLED_CHECKS = (
|
||||
("external_link", "ck_external_link_ck_external_link_host",
|
||||
"ck_external_link_host"),
|
||||
("external_link", "ck_external_link_ck_external_link_status",
|
||||
"ck_external_link_status"),
|
||||
("import_settings", "ck_import_settings_ck_import_settings_singleton",
|
||||
"ck_import_settings_singleton"),
|
||||
("ml_settings", "ck_ml_settings_ck_ml_settings_singleton",
|
||||
|
||||
Reference in New Issue
Block a user