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,
|
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.
|
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
|
`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
|
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:
|
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_import_settings_ck_import_settings_singleton
|
||||||
ck_ml_settings_ck_ml_settings_singleton
|
ck_ml_settings_ck_ml_settings_singleton
|
||||||
ck_post_ck_post_translation_override
|
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
|
depends_on: Union[str, Sequence[str], None] = None
|
||||||
|
|
||||||
# (table, doubled name, single-prefix name)
|
# (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 = (
|
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",
|
("import_settings", "ck_import_settings_ck_import_settings_singleton",
|
||||||
"ck_import_settings_singleton"),
|
"ck_import_settings_singleton"),
|
||||||
("ml_settings", "ck_ml_settings_ck_ml_settings_singleton",
|
("ml_settings", "ck_ml_settings_ck_ml_settings_singleton",
|
||||||
|
|||||||
Reference in New Issue
Block a user