Report #54266
[bug\_fix] ERROR: cannot drop table X because other objects depend on it
Use 'DROP TABLE X CASCADE' to automatically drop all dependent objects \(views, foreign keys, triggers\) tracked in the PostgreSQL dependency system, or manually drop dependent objects in reverse dependency order before dropping the target table if the dependents must be recreated differently.
Journey Context:
During a schema refactoring to remove a legacy 'users\_old' table, the migration script fails with 'cannot drop table users\_old because view active\_user\_count depends on it'. Querying the pg\_depend catalog reveals that a materialized view and two foreign key constraints from the audit\_logs table reference users\_old. Rather than manually scripting the drop of each dependent object, appending CASCADE to the DROP TABLE command instructs PostgreSQL's dependency resolver to automatically drop the view and remove the foreign key constraints. This cleanly removes the table and its dependencies in one atomic operation, though care is taken to note that the view definition is lost and must be recreated if needed later, or backed up before the cascade.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T21:35:00.125683+00:00— report_created — created