Skip to content

An improved version of .iterdump() for sqlite3

License

Notifications You must be signed in to change notification settings

simonw/sqlite-dump

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sqlite-dump

PyPI Changelog License

An improved version of .iterdump() for Python's sqlite3

Background

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.

Installation

Install this plugin using pip:

$ pip install sqlite-dump

Usage

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)

Development

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

About

An improved version of .iterdump() for sqlite3

Resources

License

Stars

Watchers

Forks

Languages