Создание БД 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, проверьте этот файл, чтобы получить правильную информацию для входа. Это очень очень удобный.