An improved version of .iterdump()
for Python's sqlite3
Python's sqlite3
standard library module provides a method for dumping the contents of a database out as lines of SQL that can be used to recreate the database:
import sqlite3
conn = sqlite3.connect("mydb.db")
for line in conn.iterdump():
print(line)
This mechanism is convenient but unfortunately does not support every SQLite feature. In particular it doesn't correctly dump databases that use SQLite's full-text search functionality from the FTS module. This library offers an improved alternative to the .iterdump()
method.
Install this plugin using pip
:
$ pip install sqlite-dump
To loop through lines of SQL that can recreate a SQLite database file:
import sqlite3
from sqlite_dump import iterdump
conn = sqlite3.connect(db_path)
for line in iterdump(conn):
print(line)
To contribute to this library, first checkout the code. Then create a new virtual environment:
cd sqlite-dump
python -mvenv venv
source venv/bin/activate
Or if you are using pipenv
:
pipenv shell
Now install the dependencies and tests:
pip install -e '.[test]'
To run the tests:
pytest