PostgreSQL 17 runners are live
All rules

SDB111[high]Compatibility

Table renamed

Clients that use the old table name fail after a rename.

Why it's risky in PostgreSQL

Running application instances keep sending queries with the old name during and after the deploy.

Use an expand/contract approach: create a view with the old name, migrate clients, then remove it.

What triggers it, and the safer way

unsafe.sql
ALTER TABLE orders RENAME TO purchases;
safer.sql
CREATE TABLE purchases (LIKE orders INCLUDING ALL);
-- dual-write, backfill, move clients, then drop orders in a later release

Suppress it when you're sure

Put this comment on the line before the statement. The reason is required and shows in the report.

suppression
-- shadowdb:allow SDB111 <why this is safe here>

Applies to PostgreSQL 14, 15, 16, 17.