-
Всем привет!
Вот такая конструкция не работает:
В связи с чем вопрос: как добавить базу данных?conn = psycopg2.connect("user=postgres host=localhost password=123 port=5432")
cur = conn.cursor()
cur.execute("CREATE DATABASE Project")
ps: Прошу прощенья за дубль в форуме по django. -
По дефолту запрос выполняется в транзакции, помогло -
conn.set_isolation_level(0) -
Ещё вариант: таки завернуть всё вручную в транзакцию (
execute('begin') .. execute('commit')), потом завернуть это в декоратор и использовать как context manager :-) -
Иван, а можно вот примерчик вышеописанного?:)
-
from contextlib import contextmanager @contextmanager def transaction_cursor(connection): cursor = connection.cursor() try: cursor.execute('begin') yield cursor cursor.execute('commit') except: cursor.execute('rollback') raise with transaction_cursor(connection) as c: # всё под with будет завёрнуто в транзакцию c.execute('...') c.execute('...') c.execute('...') -
Спасибо большое. Читать читал про такое, но на практике не сталкивался :)
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.


