>>> import subprocess, sqlalchemy
>>> engine = sqlalchemy.create_engine("postgresql+psycopg://myuser:secret@localhost/mydb")
>>> subprocess.Popen(['/usr/bin/dropdb', '-U', 'myuser', 'mydb'])
dropdb: database removal failed: ERROR: database "openstack_citest" is being accessed by other users
DETAIL: There are 1 other session(s) using the database.
データベースを使用しているユーザーを確認しましたが、削除しようとしているのはそのユーザーです。
呼び出しを発行することでこれを解決できengine.dispose()
ますが、理由がわかりません。そもそもデータベースへのオープン接続があってはなりません。
呼び出しmysql
なしでバックエンドが機能するのと同じことを試みると、データベースを削除するのに問題なく機能します。dispose()