Skip to content

simonw/sqlite-utils-move-tables

Repository files navigation

sqlite-utils-move-tables

PyPI Changelog Tests License

Command for sqlite-utils to move tables from one database to another

Installation

Install this plugin in the same environment as sqlite-utils.

sqlite-utils install sqlite-utils-move-tables

Usage

This plugin adds a single command, sqlite-utils move-tables. The command can be used to move one or more tables from one database file to another.

sqlite-utils move-tables origin.db destination.db tablename

You can pass multiple tables to the command to move multiple tables in one go:

sqlite-utils move-tables origin.db destination.db table1 table2

A moved table will have its columns and primary keys recreated and all data copied across to the new database. The original table will then be dropped.

Foreign key constraints, indexes and triggers will not be copied across.

To keep the original table, use --keep:

sqlite-utils move-tables origin.db destination.db tablename --keep

The command checks for the existence of all of the tables in the first database, and ensures they do not yet exist in the second database. It will show an error if either of these conditions are not meant.

To ignore that error and fail silently if a table is missing or already created, use --ignore.

To over-write and replace a table in the destination database with a name that matches one of the tables to be moved, use --replace.

It is advisable to create a copy of your origin database before running this command!

Development

To set up this plugin locally, first checkout the code. Then create a new virtual environment:

cd sqlite-utils-move-tables
python3 -m venv venv
source venv/bin/activate

Now install the dependencies and test dependencies:

pip install -e '.[test]'

To run the tests:

pytest

About

sqlite-utils plugin adding a move-tables command

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages