PhoenixKit.Migrations.Postgres.V172 (phoenix_kit v2.7.0)

Copy Markdown View Source

V172: the built-in SEO module becomes Crawlers.

Everything the module holds is bot policy — the noindex directive, crawler guidance, and (from this release) per-bot-group access controls — while actual SEO work lives in the external phoenix_kit_seo package. The rename frees the name for the thing that owns it and stops the settings page overselling itself. Data moves in two places:

Settings rows

seo_module_enabledcrawlers_module_enabled and seo_no_indexcrawlers_no_index, with the module tag on any 'seo'-tagged row updated to 'crawlers'. Guarded so a half-migrated database (both keys present) deduplicates rather than violating the unique key: the old row is renamed only when the new key is absent, and any leftover old row is then deleted. The old row's value wins over a stray new one — it is the one the running site was actually honoring.

Permission rows

Roles granted 'seo' gain 'crawlers'. The old 'seo' rows are kept, deliberately: the ExpectedSchema manifest (repair) still lists the V135 'seo' seed as required, so deleting the rows here would make mix phoenix_kit.repair re-create them on its next run — a migration and a repair tool fighting over the same row. The stale grants are inert (no module registers the 'seo' key, so no page reads them, and the permissions matrix only renders registered keys) and their removal belongs to the next manifest regeneration, where the seed entry itself moves.

Summary

Functions

down(opts)

up(opts)