Migrations¶
Henson-Database offers support for Alembic migrations. To enable them, install Henson-Database with the migrations extra:
$ python -m pip install Henson-Database[migrations]
This enables the following commands through the db
namespace:
$ henson --app APP_PATH db --help
henson –app APP_PATH db¶
usage: henson --app APP_PATH db [-h]
{branches,current,downgrade,edit,generate,heads,history,init,merge,revision,show,stamp,upgrade}
...
-
-h
,
--help
¶
show this help message and exit
henson –app APP_PATH db branches¶
Show current branch points.
usage: henson --app APP_PATH db branches [-h] [--verbose]
-
-h
,
--help
¶
show this help message and exit
-
--verbose
,
-v
¶
verbose mode
henson –app APP_PATH db current¶
Display the current revision for a database.
usage: henson --app APP_PATH db current [-h] [--verbose]
-
-h
,
--help
¶
show this help message and exit
-
--verbose
,
-v
¶
verbose mode
henson –app APP_PATH db downgrade¶
Revert to a previous version.
usage: henson --app APP_PATH db downgrade [-h] [-s] [-t TAG] [revision]
-
revision
¶
revision identifier
-
-h
,
--help
¶
show this help message and exit
-
-s
,
--sql
¶
don’t emit SQL to database - dump to standard output/file instead
-
-t
<tag>
,
--tag
<tag>
¶ arbitrary ‘tag’ name - can be used by custom env.py scripts
henson –app APP_PATH db edit¶
Edit revision script(s) using $EDITOR.
usage: henson --app APP_PATH db edit [-h] rev
-
rev
¶
None
-
-h
,
--help
¶
show this help message and exit
henson –app APP_PATH db generate¶
Generate a revision (alias for ‘revision –autogenerate’).
usage: henson --app APP_PATH db generate [-h] [-m MESSAGE] [--sql]
[--head HEAD] [--splice]
[-b BRANCH_LABEL] [-v VERSION_PATH]
[-r REV_ID] [-d DEPENDS_ON]
-
-h
,
--help
¶
show this help message and exit
-
-m
<message>
,
--message
<message>
¶ message string to use with ‘revision’
-
--sql
¶
don’t emit SQL to database - dump to standard output/file instead
-
--head
<head>
¶ specify head revision or <branchname>@head to base new revision on
-
--splice
¶
allow a non-head revision as the ‘head’ to splice onto
-
-b
<branch_label>
,
--branch-label
<branch_label>
¶ specify a branch label to apply to the new revision
-
-v
<version_path>
,
--version-path
<version_path>
¶ specify specific path from config for version file
-
-r
<rev_id>
,
--rev-id
<rev_id>
¶ specify a hardcoded revision id instead of generating one
-
-d
<depends_on>
,
--depends-on
<depends_on>
¶ specify one or more revision identifiers which this revision should depend on
henson –app APP_PATH db heads¶
Show current available heads in the script directory.
usage: henson --app APP_PATH db heads [-h] [-r] [--verbose]
-
-h
,
--help
¶
show this help message and exit
-
-r
,
--resolve-dependencies
¶
treat dependency versions as down revisions
-
--verbose
,
-v
¶
verbose mode
henson –app APP_PATH db history¶
List changeset scripts in chronological order.
usage: henson --app APP_PATH db history [-h] [-r REV_RANGE] [--verbose]
-
-h
,
--help
¶
show this help message and exit
-
-r
<rev_range>
,
--rev-range
<rev_range>
¶ specify a revision range; format is [start]:[end]
-
--verbose
,
-v
¶
verbose mode
henson –app APP_PATH db init¶
Initialize a new scripts directory.
usage: henson --app APP_PATH db init [-h] [directory]
-
directory
¶
location of scripts directory
-
-h
,
--help
¶
show this help message and exit
henson –app APP_PATH db merge¶
Merge two revisions together. Creates a new migration file.
usage: henson --app APP_PATH db merge [-h] [-m MESSAGE] [-b BRANCH_LABEL]
[-r REV_ID]
revisions
-
revisions
¶
one or more revisions, or ‘heads’ for all heads
-
-h
,
--help
¶
show this help message and exit
-
-m
<message>
,
--message
<message>
¶ message string to use with ‘revision’
-
-b
<branch_label>
,
--branch-label
<branch_label>
¶ specify a branch apply to the new revision
-
-r
<rev_id>
,
--rev-id
<rev_id>
¶ specify a hardcoded revision id instead of generating one
henson –app APP_PATH db revision¶
Create a new revision file.
usage: henson --app APP_PATH db revision [-h] [-m MESSAGE] [-a] [--sql]
[--head HEAD] [--splice]
[-b BRANCH_LABEL] [-v VERSION_PATH]
[-r REV_ID] [-d DEPENDS_ON]
-
-h
,
--help
¶
show this help message and exit
-
-m
<message>
,
--message
<message>
¶ message string to use with ‘revision’
-
-a
,
--autogenerate
¶
populate revision script with candidate migration operations, based on comparison of database to model
-
--sql
¶
don’t emit SQL to database - dump to standard output/file instead
-
--head
<head>
¶ specify head revision or <branchname>@head to base new revision on
-
--splice
¶
allow a non-head revision as the ‘head’ to splice onto
-
-b
<branch_label>
,
--branch-label
<branch_label>
¶ specify a branch label to apply to the new revision
-
-v
<version_path>
,
--version-path
<version_path>
¶ specify specific path from config for version file
-
-r
<rev_id>
,
--rev-id
<rev_id>
¶ specify a hardcoded revision id instead of generating one
-
-d
<depends_on>
,
--depends-on
<depends_on>
¶ specify one or more revision identifiers which this revision should depend on
henson –app APP_PATH db show¶
Show the revision(s) denoted by the given symbol.
usage: henson --app APP_PATH db show [-h] rev
-
rev
¶
None
-
-h
,
--help
¶
show this help message and exit
henson –app APP_PATH db stamp¶
‘stamp’ the revision table with the given revision; don’t run any migrations.
usage: henson --app APP_PATH db stamp [-h] [-s] [-t TAG] revision
-
revision
¶
revision identifier
-
-h
,
--help
¶
show this help message and exit
-
-s
,
--sql
¶
don’t emit SQL to database - dump to standard output/file instead
-
-t
<tag>
,
--tag
<tag>
¶ arbitrary ‘tag’ name - can be used by custom env.py scripts
henson –app APP_PATH db upgrade¶
Upgrade to a later version.
usage: henson --app APP_PATH db upgrade [-h] [-s] [-t TAG] [revision]
-
revision
¶
revision identifier
-
-h
,
--help
¶
show this help message and exit
-
-s
,
--sql
¶
don’t emit SQL to database - dump to standard output/file instead
-
-t
<tag>
,
--tag
<tag>
¶ arbitrary ‘tag’ name - can be used by custom env.py scripts