SQLAlchemy изменить базу данных для двигателя - PullRequest
0 голосов
/ 31 октября 2019

У меня небольшая проблема с моим текущим приложением колба + SQLAlchemy. Я создаю экземпляр базы данных / движка, который подключается к базе данных 'master', которая всегда существует на сервере SQL, и после этого я создаю свою тестовую базу данных и меняю базу данных существующего движка с 'master' на эту новую базу данных. Моя проблема в том, что я, кажется, неправильно выполняю «переопределение» баз данных для этого механизма.

def create_db(self):
    url = copy(self.db.engine.url)  # current url points to database 'master'
    engine = create_engine(url, connect_args={'autocommit': True}, isolation_level='AUTOCOMMIT')
    res = engine.execute(f"exec dbo.create_my_test_temp_db")
    tempdbname = res.fetchone()[0]  # this is the new DB the stored proc created for us
    res.close()
    engine.dispose()
    self.db.engine.url.database = tempdbname  # repoint to the new DB (doesn't work)
    return tempdbname

Я должен использовать хранимую процедуру dbo.create_my_test_temp_db, которая на стороне сервера, потому чтоон создает магию при создании базы данных. Я изменяю базу данных в URL-адресе, и строка подключения для механизма показывает новую базу данных, но все операции выполняются с master.

Как я могу изменить базу данных для существующего механизма на другую базу данных?

...