为什么我需要配置postgresql sqlalchemy引擎?

时间:2013-01-10 13:08:46

标签: python postgresql sqlalchemy

>>> 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()调用的情况下工作,可以正常删除数据库。

1 个答案:

答案 0 :(得分:2)

design

  

DROP DATABASE删除数据库。 [...]。此外,它无法执行   当您或其他任何人连接到目标数据库时