This is how I set up my database for the application (in Flask):
from sqlalchemy.engine import create_engine from sqlalchemy.orm import scoped_session, create_session from sqlalchemy.ext.declarative import declarative_base engine = None db_session = scoped_session(lambda: create_session(bind=engine, autoflush=False, autocommit=False, expire_on_commit=True)) Base = declarative_base() Base.query = db_session.query_property() def init_engine(uri, **kwargs): global engine engine = create_engine(uri, **kwargs) Base.metadata.create_all(bind=engine) return engine
If I connect to a file database that already has tables created, everything works fine, but using sqlite: ///: memory: as the target database gives me:
OperationalError: (OperationalError) no such table: users u'DELETE FROM users' ()
upon request, for example for ex .:
UsersTable.query.delete() db_session.commit()
I access this code from unit test. What is the problem?
thanks
Edit:
Application setup:
app = Flask(__name__) app.config.from_object(__name__) app.secret_key = 'XXX'
source share