Python SQLAlchemy: отношение psycopg2.ProgrammingError уже существует?Python

Программы на Python
Ответить
Anonymous
 Python SQLAlchemy: отношение psycopg2.ProgrammingError уже существует?

Сообщение Anonymous »

Я неоднократно пытался создать таблицу MYTABLENAME с помощью SQLAlchemy в Python. Я удалил все таблицы через свой SQL-клиент Dbeaver, но получаю сообщение об ошибке, сообщающее, что таблица существует так, что

Код: Выделить всё

Traceback (most recent call last):
File "/home/hhh/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
context)
File "/home/hhh/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 470, in do_execute
cursor.execute(statement, parameters)
psycopg2.ProgrammingError: relation "ix_MYTABLENAME_index" already exists

sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "ix_MYTABLENAME_index" already exists
[SQL: 'CREATE INDEX "ix_MYTABLENAME_index" ON "MYTABLENAME" (index)']
Мне удалось создать таблицы и их вставки с уникальным именем, но во второй раз я получаю сообщение об ошибке, несмотря на удаление таблиц в Dbeaver.
Небольшой пример

Код: Выделить всё

from datetime import date
from sqlalchemy import create_engine
import numpy as np
import pandas as pd

def storePandasDF2PSQL(myDF_):
#Store results as Pandas Dataframe to PostgreSQL database.
#
#Example
#df=pd.DataFrame(np.random.randn(8, 4), columns=['A','B','C','D'])
#dbName= date.today().strftime("%Y%m%d")+"_TABLE"
#engine = create_engine('postgresql://hhh:yourPassword@localhost:1234/hhh')
#df.to_sql(dbName, engine)

df      = myDF_
dbName  = date.today().strftime("%Y%m%d")+"_TABLE"
engine  = create_engine('postgresql://hhh:yourPassword@localhost:1234/hhh')
# ERROR: NameError: name 'table' is not defined
#table.declarative_base.metadata.drop_all(engine)    #Drop all tables

#TODO: This step is causing errors because the SQLAlchemy thinks the
#TODO: table still exists even though deleted
df.to_sql(dbName, engine)
Как правильно очистить серверную часть, например, зависший индекс, чтобы воссоздать таблицу со свежими данными? Другими словами, как решить ошибку?

Подробнее здесь: https://stackoverflow.com/questions/501 ... ady-exists
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»