Я пытаюсь внести некоторые изменения в схему базы данных в моей базе данных, используя методы sqlalchemy table.create и sqlalchemy-migrate table.rename, а также некоторые вставки в выбранные оценки.Я хочу обернуть все это в транзакцию.Я не могу понять, как это сделать.Это то, что я пробовал:
engine = sqlalchemy.engine_from_config(conf.local_conf, 'sqlalchemy.')
trans = engine.connect().begin()
try:
old_metatadata.tables['address'].rename('address_migrate_tmp', connection=trans)
new_metatadata.tables['address'].create(connection=trans)
except:
trans.rollback()
raise
else:
trans.commit()
Но это ошибки с:
AttributeError: 'RootTransaction' object has no attribute '_run_visitor'
(я пытался использовать sqlalchemy-migrate column.alter (name = 'newname'), но это ошибки,и не работает в транзакции, и поэтому оставляет мою базу данных в нерабочем состоянии. Мне также нужно переименовать несколько столбцов, и поэтому я решил свернуть свой собственный код.)