On Thu, Jul 20, 2017 at 4:09 PM, Josh Berkus <josh@berkus.org> wrote:
All:
The problem:
postgres=# drop database bookdata; ERROR: database "bookdata" is being accessed by other users DETAIL: There is 1 other session using the database. postgres=# \c bookdata You are now connected to database "bookdata" as user "postgres". bookdata=# drop subscription wholedb; NOTICE: dropped replication slot "wholedb" on publisher DROP SUBSCRIPTION bookdata=# \c postgres You are now connected to database "postgres" as user "postgres". postgres=# drop database bookdata; DROP DATABASE
Is there any easy way for us to detect that the "user" accessing the target database is actually a logical replication subscription, and give the DBA a better error message (e.g. "database 'bookdata' still has open subscrptions")?
+1
Better yet would be to just cascade the drop, but I assume that would be harder to do.