46904


Windows上でPostgreSQLにdumpファイルのインポートをしようとしたら、インポートできませんでした。  
コマンドラインは次の通りです。

[code]

    database=# \lo_import c:/database.backup
    lo_import 16401
    database=# \dt
                リレーション一覧
    スキーマ |   名前   |    型    |  所有者
    ----------+----------+----------+----------
    public   | products | テーブル | postgres
    (1 行)
    
[/code]

ただし、products データベースは、もともとあった1行のテーブルです。  
また、pythonを使って次のようにしてもダメでした。

[code]

    import psycopg2
    
    connector = psycopg2.connect(
        host='localhost',
        port= '5432',
        database='postgres',
        user='postgres',
        password='*********',
    )
    cursor = connector.cursor()
    
    sql = "pg_restore -d database2 c:/database.backup"
    cursor.execute(sql)
    
[/code]

何がわるいのでしょうか。  
また、うまく行く方法が別にありましたら、教えて頂けないでしょうか。  
よろしくお願いします。


CC BY-SA 4.0
2018-07-24T07:27:56.593
46901
2018-07-24T08:57:18.007
2018-07-24T08:03:30.930
3060
29110
question
python python3 postgresql windows-10
PostgreSQLでdumpファイルのインポートができない。


> \lo_import c:/database.backup

`\lo_import`はファイルをPostgreSQLのラージオブジェクトに保存するコマンドのため、  
dumpファイルをリストアするためには利用できないようです。  
(参考: [psql](https://www.postgresql.jp/document/9.5/html/app-psql.html))

> sql = "pg_restore -d database2 c:/database.backup"

また、`pg_restore`はSQLではなく、コマンドなのでコマンドプロンプトから利用しなければならないと思います。  
`C:\Program
Files\PostgreSQL\バージョン番号\bin`などにコマンドは格納されていると思いますので、パスを通すか、格納ディレクトリへ移動するか、してから`pg_restore
-d database2 c:/database.backup`を実行してみてください。


CC BY-SA 4.0
2018-07-24T08:25:02.920
46904
2018-07-24T08:57:18.007
2018-07-24T08:57:18.007
46901
answer