user_defined table not working issue
indiVar0508 opened this issue · 0 comments
indiVar0508 commented
from sqlalchemy_history.utils import version_table
from sqlalchemy_history import make_versioned
from sqlalchemy import Column, Integer, Unicode, UnicodeText, create_engine, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import create_session, configure_mappers, relationship
make_versioned(user_cls=None, options={'table_name': f'%s_trace'})
Base = declarative_base()
class Article(Base):
__versioned__ = {}
__tablename__ = 'article'
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(Unicode(255))
content = Column(UnicodeText)
class Author(Base):
__versioned__ = {}
__tablename__ = 'author'
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(Unicode(255))
article_id = Column(ForeignKey('article.id'))
article = relationship(Article, backref='author')
configure_mappers()
engine = create_engine('sqlite://')
Base.metadata.create_all(engine)
session = create_session(bind=engine, autocommit=False)
article = Article(name='Some article', content='Some content')
author = Author(name='abc', article=article)
session.add(article)
session.add(author)
session.commit()
author = session.query(Author).first()
print(author.versions[0].article)
gives
sqlalchemy.exc.InvalidRequestError: Select statement '<sqlalchemy.sql.selectable.Select object at 0x7f4fef7eb070>' returned no FROM clauses due to auto-correlation; specify correlate(<tables>) to control correlation manually.