pawamoy/shell-history

SQLite objects created in a thread can only be used in that same thread

sirfoga opened this issue · 4 comments

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

Hi @sirfoga, thank you very much for your reports and PRs!! I'll have time to look at them tomorrow!

Closed by a699eac

In fact it still happens. I don't understand what we're doing wrong. We might as well refactor using Django instead of Flask...

use of scoped_session (see this SO answer) ?