mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-09-28 12:54:15 +02:00
sqlite-utils dump command, closes #274
This commit is contained in:
parent
fe1562e8a6
commit
ca2b26130f
3 changed files with 35 additions and 0 deletions
13
docs/cli.rst
13
docs/cli.rst
|
|
@ -1256,6 +1256,19 @@ You can disable WAL mode using ``disable-wal``::
|
||||||
|
|
||||||
Both of these commands accept one or more database files as arguments.
|
Both of these commands accept one or more database files as arguments.
|
||||||
|
|
||||||
|
.. _cli_dump:
|
||||||
|
|
||||||
|
Dumping the database to SQL
|
||||||
|
===========================
|
||||||
|
|
||||||
|
The ``dump`` command outputs a SQL dump of the schema and full contents of the specified database file::
|
||||||
|
|
||||||
|
$ sqlite-utils dump mydb.db
|
||||||
|
BEGIN TRANSACTION;
|
||||||
|
CREATE TABLE ...
|
||||||
|
...
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
.. _cli_load_extension:
|
.. _cli_load_extension:
|
||||||
|
|
||||||
Loading SQLite extensions
|
Loading SQLite extensions
|
||||||
|
|
|
||||||
|
|
@ -308,6 +308,21 @@ def vacuum(path):
|
||||||
sqlite_utils.Database(path).vacuum()
|
sqlite_utils.Database(path).vacuum()
|
||||||
|
|
||||||
|
|
||||||
|
@cli.command()
|
||||||
|
@click.argument(
|
||||||
|
"path",
|
||||||
|
type=click.Path(exists=True, file_okay=True, dir_okay=False, allow_dash=False),
|
||||||
|
required=True,
|
||||||
|
)
|
||||||
|
@load_extension_option
|
||||||
|
def dump(path, load_extension):
|
||||||
|
"""Output a SQL dump of the schema and full contents of the database"""
|
||||||
|
db = sqlite_utils.Database(path)
|
||||||
|
_load_extensions(db, load_extension)
|
||||||
|
for line in db.conn.iterdump():
|
||||||
|
click.echo(line)
|
||||||
|
|
||||||
|
|
||||||
@cli.command(name="add-column")
|
@cli.command(name="add-column")
|
||||||
@click.argument(
|
@click.argument(
|
||||||
"path",
|
"path",
|
||||||
|
|
|
||||||
|
|
@ -502,6 +502,13 @@ def test_vacuum(db_path):
|
||||||
assert 0 == result.exit_code
|
assert 0 == result.exit_code
|
||||||
|
|
||||||
|
|
||||||
|
def test_dump(db_path):
|
||||||
|
result = CliRunner().invoke(cli.cli, ["dump", db_path])
|
||||||
|
assert result.exit_code == 0
|
||||||
|
assert result.output.startswith("BEGIN TRANSACTION;")
|
||||||
|
assert result.output.strip().endswith("COMMIT;")
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("tables", ([], ["Gosh"], ["Gosh2"]))
|
@pytest.mark.parametrize("tables", ([], ["Gosh"], ["Gosh2"]))
|
||||||
def test_optimize(db_path, tables):
|
def test_optimize(db_path, tables):
|
||||||
db = Database(db_path)
|
db = Database(db_path)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue