Use a Custom Database¶
unihan_db.bootstrap.get_session() stores the default SQLite database in
the current user’s XDG data directory. Pass an explicit SQLAlchemy database URL
when your application should own the database location.
Use a file URL such as sqlite:////path/to/unihan.db for a persistent SQLite
database. After you have the session, the rest of the workflow is unchanged:
call unihan_db.bootstrap.bootstrap_unihan() once, then query
unihan_db.tables.Unhn rows.
>>> from unihan_db.bootstrap import get_session
>>> db_path = tmp_path / "unihan.db"
>>> session = get_session(f"sqlite:///{db_path}")
>>> db_path.exists()
True
>>> session.remove()
For test suites, prefer an in-memory SQLAlchemy engine and the fixtures in
tests/ so the first bootstrap can use a local UNIHAN archive instead of the
network.