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')
最善の方法は何ですか?ありがとう!