2017-07-28 6 views
1

私はPostgresに接続してスキーマを作成するための、このシンプルなPythonコードを持っています。エラーは表示されませんが、Postgresでスキーマが追加されることはありません。私は明らかな何かを見逃しているに違いない。Postgresでスキーマを作成するPythonが表示されない

私はそれが間違ったパスワードを与えたときにエラーなしで返されたので、これがPostgresに接続されているかどうかはわかりません。しかし、私が試行錯誤をしたときに接続が確立されていると言っているとき。助けてください〜ありがとう!

import psycopg2 

psycopg2.autocommit = True 

def build_archive(db1): 

    db1 = psycopg2.connect(database='postgres', user='operator', password='1234', host='localhost', port='2280') 
    cursor = db1.cursor() 
    sql = """CREATE SCHEMA app_tools AUTHORIZATION operator;""" 
    cursor.execute(sql) 
+0

'operator'ユーザが' postgres'データベースにスキーマを作成できますか? –

答えて

1

実際にコード内で実際にbuild_archive()を呼び出して、そのコードが実行されることはありません。関数定義の下にbuild_archive()の呼び出しを追加する必要があります。すると、出力が表示されます。例えば

import psycopg2 

psycopg2.autocommit = True 

def build_archive(db1): 
    db1 = psycopg2.connect(database='postgres', user='operator',   
      password='1234', host='localhost', port='2280') 
    cursor = db1.cursor() 
    sql = """CREATE SCHEMA app_tools AUTHORIZATION operator;""" 
    cursor.execute(sql) 

build_archive() # Add this call to build_archive() 

Pythonで関数を使用する方法についての詳細を学ぶためには、hereをお読みください。

+0

こんにちはecarlin!助けてくれてありがとう。私はそこに持っていましたが、まだ動作していません:/ しかし、私はselect文を実行すると、すべてが正常に印刷されています。わからない理由 – questiongirl

+0

DDL( 'create schema')文の実行後にコミットする必要があります。 – cco

+0

もう一度ありがとう!私は離れていました(db1)、今すぐ働いています。はい、私はそのコミットを追加しました。私はオートコミットがやると思った。 – questiongirl

関連する問題