mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-07-26 19:04:32 +02:00
Compare commits
2 commits
main
...
say-5/docu
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e38d701fb1 | ||
|
|
36a34e95bf |
2 changed files with 39 additions and 0 deletions
|
|
@ -109,6 +109,14 @@ You can also create a named in-memory database. Unlike regular memory databases
|
||||||
|
|
||||||
db = Database(memory_name="my_shared_database")
|
db = Database(memory_name="my_shared_database")
|
||||||
|
|
||||||
|
After creating a ``Database`` you can use ``db.memory`` and ``db.memory_name`` to tell whether it is backed by an in-memory database and to read the shared cache name. ``db.memory`` is ``True`` for any in-memory database and ``db.memory_name`` holds the name passed to ``memory_name=``, or ``None`` otherwise.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
db = Database(memory_name="shared")
|
||||||
|
db.memory # True
|
||||||
|
db.memory_name # "shared"
|
||||||
|
|
||||||
Connections use ``PRAGMA recursive_triggers=on`` by default. If you don't want to use `recursive triggers <https://www.sqlite.org/pragma.html#pragma_recursive_triggers>`__ you can turn them off using:
|
Connections use ``PRAGMA recursive_triggers=on`` by default. If you don't want to use `recursive triggers <https://www.sqlite.org/pragma.html#pragma_recursive_triggers>`__ you can turn them off using:
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,37 @@ def test_database_close(tmpdir, memory):
|
||||||
db.execute("select 1 + 1")
|
db.execute("select 1 + 1")
|
||||||
|
|
||||||
|
|
||||||
|
def test_memory_attribute_for_memory_true():
|
||||||
|
db = Database(memory=True)
|
||||||
|
assert db.memory is True
|
||||||
|
assert db.memory_name is None
|
||||||
|
|
||||||
|
|
||||||
|
def test_memory_attribute_for_memory_name():
|
||||||
|
db = Database(memory_name="shared_attr")
|
||||||
|
assert db.memory is True
|
||||||
|
assert db.memory_name == "shared_attr"
|
||||||
|
|
||||||
|
|
||||||
|
def test_memory_attribute_for_memory_string_path():
|
||||||
|
db = Database(":memory:")
|
||||||
|
assert db.memory is True
|
||||||
|
assert db.memory_name is None
|
||||||
|
|
||||||
|
|
||||||
|
def test_memory_attribute_for_file_path(tmpdir):
|
||||||
|
db = Database(str(tmpdir / "file.db"))
|
||||||
|
assert db.memory is False
|
||||||
|
assert db.memory_name is None
|
||||||
|
|
||||||
|
|
||||||
|
def test_memory_attribute_for_existing_connection():
|
||||||
|
conn = sqlite3.connect(":memory:")
|
||||||
|
db = Database(conn)
|
||||||
|
assert db.memory is False
|
||||||
|
assert db.memory_name is None
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skipif(
|
@pytest.mark.skipif(
|
||||||
sys.version_info < (3, 12),
|
sys.version_info < (3, 12),
|
||||||
reason="sqlite3.connect(autocommit=) requires Python 3.12",
|
reason="sqlite3.connect(autocommit=) requires Python 3.12",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue