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