Как подключиться к локальному серверу Postgresql и создать базу данных из настольного приложения Python

#python-3.x #postgresql

#python-3.x #postgresql

Вопрос:

Как подключиться к локальному серверу Postgresql и создать базу данных из настольного приложения Python

мой код :

 import psycopg2

conn_string = "host='localhost' dbname='database' user='root' password='root'"
conn = psycopg2.connect(conn_string)

print("Database opened successfully")


conn.close()
print("Database Closed successfully")
  

Комментарии:

1. С каким вопросом вы столкнулись?

2. К вашему сведению, параметры, заключенные в одинарные кавычки, не нужны.

Ответ №1:

Вы можете поместить эти строки после подключения к БД (после строки № 4).

 cursor = conn.cursor();
cursor.execute("create database my_new_database");
  

Полный код будет выглядеть

 import psycopg2
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT


conn_string = "host='localhost' dbname='postgres' user='root' password='root'"
conn = psycopg2.connect(conn_string)
conn.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT);

print("Database opened successfully")
cursor = conn.cursor();
cursor.execute("create database my_new_database");

conn.close()

conn_string = "host='localhost' dbname='my_new_database' user='root' password='root'"
conn = psycopg2.connect(conn_string)
# here you need to populate database wit tables "create table mytbl..."
conn.close()
print("Database Closed successfully")
  

Комментарии:

1. Но сначала он подключается к базе данных Не так, как я хочу, я хочу, чтобы при установке приложения Python Desktop, которое я создал, оно подключалось к серверу postgresql, а затем создавало базу данных из самой программы

2. @siliapps сначала вы можете подключиться к базе данных «postgres» (postgres является основной базой данных по умолчанию), а затем создать свою базу данных «my_new_database». После этого вы можете отключиться от базы данных «postgres» и подключиться к «my_new_database».

3. У меня это не сработало, можете ли вы написать код упорядоченным образом, начиная с, import psycopg2

4. Вот сообщение об ошибке ==> База данных успешно открыта для отслеживания (последний последний вызов): строка 8, в <module> cursor.execute («создать базу данных odooo»); psycopg2.errors. ActiveSqlTransaction: СОЗДАНИЕ БАЗЫ ДАННЫХ не может выполняться внутри блока транзакции

5. Вам нужно установить флаг автоматической фиксации, я только что отредактировал ответ.