Python CLI utility and library for manipulating SQLite databases https://sqlite-utils.datasette.io
  • Python 99.7%
  • C 0.2%
Find a file
Simon Willison 57e43baece Table options can now be passed to constructor OR to insert_all()
If you want to set default options for a table, you can do this:

    table = db.table("dogs", pk="id", column_order=["name", "age"])

If you pass those keyword arguments to the .insert/.update/etc
methods they will over-ride the defaults you set on the table.

    table = db["dogs"] # This still works too
2019-07-22 16:30:54 -07:00
docs Release 1.6 2019-07-18 21:51:21 -07:00
sqlite_utils Table options can now be passed to constructor OR to insert_all() 2019-07-22 16:30:54 -07:00
tests Table options can now be passed to constructor OR to insert_all() 2019-07-22 16:30:54 -07:00
.gitignore Remove .DS_Store 2019-06-20 16:56:13 -07:00
.travis.yml Support for numpy types, closes #11 (#12) 2019-02-23 20:02:19 -08:00
LICENSE Added LICENSE file 2019-02-23 09:16:57 -08:00
README.md Added Python library example to README 2019-07-03 11:04:03 -07:00
setup.py Release 1.6 2019-07-18 21:51:21 -07:00

sqlite-utils

PyPI Travis CI Documentation Status License

Python CLI utility and library for manipulating SQLite databases.

Read more on my blog: sqlite-utils: a Python library and CLI tool for building SQLite databases

Install it like this:

pip3 install sqlite-utils

Now you can do things with the CLI utility like this:

$ sqlite-utils tables dogs.db --counts
[{"table": "dogs", "count": 2}]

$ sqlite-utils dogs.db "select * from dogs"
[{"id": 1, "age": 4, "name": "Cleo"},
 {"id": 2, "age": 2, "name": "Pancakes"}]

$ sqlite-utils dogs.db "select * from dogs" --csv
id,age,name
1,4,Cleo
2,2,Pancakes

$ sqlite-utils dogs.db "select * from dogs" --table
  id    age  name
----  -----  --------
   1      4  Cleo
   2      2  Pancakes

Or you can import it and use it as a Python library like this:

import sqlite_utils
db = sqlite_utils.Database("demo_database.db")
# This line creates a "dogs" table if one does not already exist:
db["dogs"].insert_all([
    {"id": 1, "age": 4, "name": "Cleo"},
    {"id": 2, "age": 2, "name": "Pancakes"}
], pk="id")

Full documentation: https://sqlite-utils.readthedocs.io/

Related projects:

  • Datasette: A tool for exploring and publishing data
  • csvs-to-sqlite: Convert CSV files into a SQLite database
  • db-to-sqlite: CLI tool for exporting a MySQL or PostgreSQL database as a SQLite file