-
Notifications
You must be signed in to change notification settings - Fork 48
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix duplicate inferred migrations when dropping columns outside of a …
…migration (#305) Ensure that only one `inferred` migration is created in the `pgroll.migrations` table when a column is dropped outside of a migration. From the Postgres [docs](https://www.postgresql.org/docs/current/event-trigger-definition.html): > The sql_drop event occurs just before the ddl_command_end event trigger for any operation that drops database objects This means that when the `raw_migration` function is run in response to `sql_drop` and `ddl_command_end`, duplicate entries will be created in `pgroll.migrations`; once as the function is run for `sql_drop` and again when it's run for `ddl_command_end`. Change the definition of the `pg_roll_handle_drop` event trigger to only run on those kinds of drops that won't result in duplicates when the `pg_roll_handle_ddl` trigger runs for the same change. `DROP TABLE` and `DROP VIEW` won't result in duplicate migrations because their schema can't be inferred by the `ddl_command_event` trigger because the object has already been dropped when the trigger runs. Update the inferred migration tests with two new testcases covering dropping tables and columns. Fixes #304
- Loading branch information
1 parent
fb05aec
commit 162bd06
Showing
2 changed files
with
163 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters