Создание БД postgresql с помощью psycopg2

Я пытаюсь создать БД postgres с помощью скрипта python. Некоторые исследования показали, что использование модуля psycopg2 может быть способом сделать это. Я установил его и внес необходимые изменения в . Я использовал следующий код для создания БД:

#!/usr/bin/python
# -*- coding: utf-8 -*-

from psycopg2 import connect
import sys
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT

con = None
con = connect(user='****', host = 'localhost', password='****')

dbname = "voylla_production1710"

con.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)
cur = con.cursor()
cur.execute('CREATE DATABASE ' + dbname)
cur.close()
con.close()

Я попытался заменить con = connect(user='nishant', host = 'localhost', password='everything') С con = connect(user='nishant', password='everything')

но я получаю следующую ошибку:

con = connect(user='nishant', host = 'localhost', password='everything') 
 File "/usr/lib/python2.7/dist-packages/psycopg2/__init__.py", line 179, in connect
connection_factory=connection_factory, async=async)
 psycopg2.OperationalError: FATAL:  database "nishant" does not exist

может кто-нибудь, пожалуйста, скажите мне, как это сделать. Спасибо

1 ответов


клиент PostgreSQL по умолчанию подключается к базе данных с именем пользователя. Вот почему вы получаете ошибку FATAL:database "nishant" does not exist.

вы можете подключиться к базе данных системы по умолчанию postgres а затем выполните запрос для создания новой базы данных.

con = connect(dbname='postgres', user='nishant', host='localhost', password='everything')

убедитесь, что ваш nishant пользователь имеет право на создание баз данных.

Edit: кстати, проверьте~/.файл pgpass для безопасного хранения пароля, а не в исходном коде (http://www.postgresql.org/docs/9.2/static/libpq-pgpass.html). libpq, клиент postgresql librairy, проверьте этот файл, чтобы получить правильную информацию для входа. Это очень очень удобный.