Я получаю эту ошибку
psycopg2.errors.DuplicateTable: relation "customers" already exists
и я знаю, что это значит.
Проблема в том, что на самом деле не было таблицы с именем «клиенты», когда я запускал программу. Чтобы убедиться в этом, я создал новую базу данных без таблицы или дважды проверил, что такой таблицы не было в существующей базе данных перед запуском кода. Я добавил оператор печати, чтобы проверить, где он сталкивается.
def createTable():
conn = pg.connect(conn_str)
cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
sql = """
create table customers
(
...
)
"""
print("checking 1111111") # printed
cur.execute(sql)
print("checking 2222222") # not printed
conn.commit()
if __name__ == "__main__":
createTable()
app.run(debug=True)
Я могу обойти эту проблему, добавив IF NOT EXISTS
к sql
, но мне действительно интересно, почему, потому что это часть кода, который раньше работал идеально.
[edit] добавил, что я сделал, чтобы убедиться, что таблица не существует