pawamoy / shell-history

Visualize your shell usage with Highcharts!
ISC License
112 stars 1 forks source link

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

Open sirfoga opened 5 years ago

sirfoga commented 5 years ago

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

Boost priority

Fund with Polar

pawamoy commented 5 years ago

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

pawamoy commented 5 years ago

Closed by https://github.com/pawamoy/shell-history/commit/a699eac45d5b38b275b65721f20b254433e10499

pawamoy commented 5 years ago

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 5 years ago

use of scoped_session (see this SO answer) ?