我刚刚开始使用 psycopg2 模块访问本地 PostgreSQL 服务器,我想要一种方法来检查服务器是否已经启动,以便我的程序可以在我尝试启动服务器时处理错误:
psqldir = 'C:/Program Files/PostgreSQL/9.2/bin' # Windows
username = os.environ.get('USERNAME')
dbname = 'mydb'
os.chdir(psqldir)
os.system('pg_ctl start -D C:/mydatadir') # Error here if server already started
conn = psycopg2.connect('dbname=' + dbname + ' user=' + username)
cur = conn.cursor()
我做了一些实验,似乎这会返回一个“0”或“3”,这可以解决我的问题,但我没有在 PostgreSQL/psycopg2 手册上找到任何信息来确认这是否是记录在案的行为:
server_state = os.system('pg_ctl status -D C:/mydatadir')
最好的方法是什么?谢谢!