SQLite objects created in a thread can only be used in that same thread
sirfoga opened this issue · 4 comments
sirfoga commented
my system
$ uname -a
Linux novo 4.15.0-39-generic #42-Ubuntu SMP Tue Oct 23 15:48:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ zsh --version
zsh 5.4.2 (x86_64-ubuntu-linux-gnu)
my problem
when I open a the admin page I get a 500 error due to SQLite objects created in a thread can only be used in that same thread
.
solution
add a get_session
like to db.py
Session = sessionmaker(bind=engine)
def get_session():
_engine = create_engine("sqlite:///%s" % DB_PATH)
session = sessionmaker(bind=_engine)
return session()
in order to create a new SQLite session (that will be destroyed)
my solution
this PR
@pawamoy thanks for your work
pawamoy commented
Hi @sirfoga, thank you very much for your reports and PRs!! I'll have time to look at them tomorrow!
pawamoy commented
In fact it still happens. I don't understand what we're doing wrong. We might as well refactor using Django instead of Flask...
sirfoga commented
use of scoped_session
(see this SO answer) ?