Enable downloading mutable databases.
Project description
datasette-mutable-downloads
Enable downloading mutable databases.
Installation
Install this plugin in the same environment as Datasette.
datasette install datasette-mutable-downloads
Usage
You can now download a mutable database on its database page, just as you can for immutable databases.
Example: https://dux.fly.dev/cooking
Notes
This is achieved by a somewhat gross monkeypatch of the DatabaseDownload
view.
We detect if the database is mutable. If it is, we first create a copy via
VACUUM INTO
.
We then stream that file to the user, and delete it.
This requires SQLite 3.27.0 or newer (Feb 2019).
NOTE
The act of
VACUUM INTO
could be resource intensive if your database is large. If you expose your Datasette to the Internet, you may wish to restrict this to only authenticated users.To do that, add a permissions block in your metadata.json:
"permissions": { "view-database-download": { "gh_id": "*" } }
Development
To set up this plugin locally, first checkout the code. Then create a new virtual environment:
cd datasette-mutable-downloads
python3 -m venv venv
source venv/bin/activate
Now install the dependencies and test dependencies:
pip install -e '.[test]'
To run the tests:
pytest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for datasette-mutable-downloads-0.1.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7a9bb0538db435cfae463ff8b0eb9ec7959e02f9909a09a5f8464aa5bed088f |
|
MD5 | f9339e71bb5dd371369b60671045bc36 |
|
BLAKE2b-256 | 0aa34cb795ac266ff0cf73859e4078174fca76ed92d87193d8077f9f7363c7dc |
Hashes for datasette_mutable_downloads-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 254415cc1d5c286f0b58f800516f34f34953df6b453d5f828072642cf163201b |
|
MD5 | 838a978be5257224f739a9697bbb206f |
|
BLAKE2b-256 | bce2de6b2f5475045e4d807f0ee299e9f808dd1127f41ee7beae60176d5b77b1 |