I keep getting the following error: ProgrammingError: (sqlite3.ProgrammingError) SQLite objects created in a thread can only be used in that same thread. I am currently trying to create objects for a SQLALCHEMY built database through Pyramid : Alchemy and Jinja2 templates; the system was working, but now suddenly it is raising this issue.
I read here on Stacks and some Python docs, some resolutions and tried to implement them. They did not work though.
I am uncertain if the issue is my DB session configuration, but based on the traceback, I imagine so.
Configuration in SQLALCHEMY DB (custom API):
def __init__(self):
configure = {'sqlalchemy.url':'sqlite:////Users/ack/code/venv/NotssDB/notssdb/notssdb.db', 'sqlalchemy.echo':'False'}
self.engine = engine_from_config(configure, prefix='sqlalchemy.')
session_factory = sessionmaker(autoflush=True,autocommit=False,bind=engine)
Session = scoped_session(session_factory)
self.session = Session()
Base.metadata.create_all(bind=engine)
Session.remove()
print('--NOTSSdb Session--')
FULL ERROR:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/pyramid_debugtoolbar-http://ift.tt/1NM4HGU", line 192, in toolbar_tween
response = _handler(request)
File "/usr/local/lib/python2.7/site-packages/pyramid_debugtoolbar-http://ift.tt/1gNqf93", line 57, in resource_timer_handler
result = handler(request)
File "/usr/local/lib/python2.7/site-packages/http://ift.tt/1gNqcKi", line 21, in excview_tween
response = handler(request)
File "/usr/local/lib/python2.7/site-packages/pyramid_tm-http://ift.tt/1N9AK3m", line 99, in tm_tween
reraise(*exc_info)
File "/usr/local/lib/python2.7/site-packages/pyramid_tm-http://ift.tt/1N9AK3m", line 80, in tm_tween
response = handler(request)
File "/usr/local/lib/python2.7/site-packages/http://ift.tt/1gNqf97", line 163, in handle_request
response = view_callable(context, request)
File "/usr/local/lib/python2.7/site-packages/http://ift.tt/1NM4Fib", line 596, in __call__
return view(context, request)
File "/usr/local/lib/python2.7/site-packages/http://ift.tt/1NM4Fib", line 329, in attr_view
return view(context, request)
File "/usr/local/lib/python2.7/site-packages/http://ift.tt/1NM4Fib", line 305, in predicate_wrapper
return view(context, request)
File "/usr/local/lib/python2.7/site-packages/http://ift.tt/1NM4Fib", line 355, in rendered_view
result = view(context, request)
File "/usr/local/lib/python2.7/site-packages/http://ift.tt/1NM4Fib", line 477, in _class_requestonly_view
response = getattr(inst, attr)()
File "/Users/ack/code/venv/NotssWEB/notssweb/views/views.py", line 95, in post_video
video = self.API.create_video(videoname, length, url)
File "/usr/local/lib/python2.7/site-packages/notssdb/api/object.py", line 146, in create_video
self.session.commit()
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 790, in commit
self.transaction.commit()
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 392, in commit
self._prepare_impl()
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 372, in _prepare_impl
self.session.flush()
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 2004, in flush
self._flush(objects)
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 2122, in _flush
transaction.rollback(_capture_exception=True)
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 63, in __exit__
compat.reraise(type_, value, traceback)
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 2122, in _flush
transaction.rollback(_capture_exception=True)
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 419, in rollback
transaction._rollback_impl()
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 449, in _rollback_impl
t[1].rollback()
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1557, in rollback
self._do_rollback()
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1595, in _do_rollback
self.connection._rollback_impl()
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 670, in _rollback_impl
self._handle_dbapi_exception(e, None, None, None, None)
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1339, in _handle_dbapi_exception
exc_info
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb)
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 668, in _rollback_impl
self.engine.dialect.do_rollback(self.connection)
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 412, in do_rollback
dbapi_connection.rollback()
ProgrammingError: (sqlite3.ProgrammingError) SQLite objects created in a thread can only be used in that same thread.The object was created in thread id 4524335104 and this is thread id 4532748288
Aucun commentaire:
Enregistrer un commentaire