Skip to content

Instantly share code, notes, and snippets.

@wynemo
Created August 30, 2022 16:00
Show Gist options
  • Select an option

  • Save wynemo/81c3e0907c5ae0737f05debac39a1b53 to your computer and use it in GitHub Desktop.

Select an option

Save wynemo/81c3e0907c5ae0737f05debac39a1b53 to your computer and use it in GitHub Desktop.

Revisions

  1. wynemo revised this gist Aug 30, 2022. 1 changed file with 33 additions and 1 deletion.
    34 changes: 33 additions & 1 deletion main.py
    Original file line number Diff line number Diff line change
    @@ -1 +1,33 @@
    ‎‎​
    from sqlalchemy import create_engine
    from sqlalchemy.orm import sessionmaker
    from sqlalchemy.pool import StaticPool
    import sqlite3

    # According to SQLite documentation, both strings below should create in-memory databases:
    #url_mode_memory = "sqlite:///file:foo.db?mode=memory&uri=true"
    url_mode_memory = "file:foo.db?mode=memory&cache=shared"
    sql_url = f'sqlite:///{url_mode_memory}'

    create_table_stmt = "CREATE TABLE bar (id INTEGER PRIMARY KEY)"

    params = {'uri': True}
    creator = lambda: sqlite3.connect(url_mode_memory, **params)
    engine_mode = create_engine(sql_url, pool=StaticPool(creator=creator, reset_on_return=False, echo='debug'), echo=True)
    local_session = sessionmaker(bind=engine_mode, autoflush=False, autocommit=False)
    session = local_session()
    session.execute(create_table_stmt)
    session.commit()
    session.execute("insert into bar (id) values (2)")
    session.execute("insert into bar (id) values (3)")

    session1 = local_session()
    print(session1.execute("select * from bar where id = 2 limit 1").one())
    #session1.close()
    del session1

    session.execute("insert into bar (id) values (4)")
    session.execute("insert into bar (id) values (5)")
    session.commit()
    num_table_mode = session.execute("select * from bar where id=2 limit 1").one()

    print(num_table_mode)
  2. wynemo created this gist Aug 30, 2022.
    1 change: 1 addition & 0 deletions main.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1 @@
    ‎‎​