Я пытаюсь автоматизировать создание / удаление базы данных моего приложения с помощью SQLAlchemy.Я создал модели, и запросы через ORM работают без проблем.Однако, когда я хочу стереть и воссоздать базу данных с нуля, Base.metadata.drop_all (engine) запускается, но ничего не возвращает, когда я пытаюсь устранить неполадки через консоль Python.Он также не удаляет объекты в моем хранилище данных.Я также проверил, что учетная запись пользователя имеет привилегию DROP.
Когда я запускаю Base.metadata.sorted_tables, я получаю список таблиц, который соответствует моделям.Я также попытался запустить цикл for для sorted_tables и выполнить удаление для каждой таблицы, но получил ошибку, сообщающую, что таблица не существует.
Мое полное кодовое хранилище можно найти по адресу: https://github.com/OpenDataAlex/process_tracker_python/tree/master/process_tracker Модели находятся в каталоге models /, а код создания движка - в data_store.py.
Я скопировал то, что я считаю релевантными битами, но после многих часов чтения документации и попытки решить эту проблему,все это стирается вместе xx
# The engine creation code
engine = create_engine(data_store_type + '://' + data_store_username + ':' + data_store_password
+ '@' + data_store_host + '/' + data_store_name)
session = sessionmaker(bind=engine)
session = session(expire_on_commit=False)
session.execute("SET search_path TO %s" % data_store_name)
# The drop code, from data_store.py DataStore().initialize_data_store()
self.logger.warn('ALERT - DATA STORE TO BE OVERWRITTEN - ALL DATA WILL BE LOST')
Base.metadata.drop_all(self.engine)