storyboard/doc/source/maintenance/upgrading.rst
Adam Coldrick 87ab62f396 Add documentation on manually upgrading a StoryBoard instance
Sometimes it is necessary to upgrade the database of a manually
deployed StoryBoard instance, for example when updating a test
server being used for development.

This commit adds some documentation on how the `storyboard-db-manage`
command-line tool can be used to upgrade and downgrade the
database.

Change-Id: I0ac21ddc3bacac7105efda7258e7ae52818f8f69
2017-10-11 22:06:45 +01:00

2.9 KiB

Manually Upgrading/Downgrading a StoryBoard Instance

If you have a manually deployed StoryBoard instance, for example a local server for development, you may sometimes need to upgrade the database as new changes are merged upstream.

Similarly, you may wish to rollback a change to for testing purposes. This guide will explain how you can use the storyboard-db-manage tool to upgrade and downgrade your database schema.

If using tox, all commands in this guide should be run as :

$ tox -e venv -- $command

You may find you need to prepend sudo to this command.

Checking the current version

If you don't know what version your database is currently, you can check it with:

$ storyboard-db-manage --config-file /path/to/storyboard.conf current

Upgrading the database

If your existing database version is currently < 049, you are advised to run the upgrade command using commit acce431b30a32497064ad6d1ab3872358e1e60dc of the storyboard repository, since after that the migrations were consolidated and will no longer work with existing databases older than version 049.

You can upgrade to the latest database version in-place with the following command:

$ storyboard-db-manage --config-file /path/to/storyboard.conf upgrade head

Replacing head in this command allows you to specify a target version. For example, this command will upgrade to version 055:

$ storyboard-db-manage --config-file /path/to/storyboard.conf upgrade 055

It is also possible to create an sql script to upgrade the database offline:

$ storyboard-db-manage --config-file /path/to/storyboard.conf upgrade head --sql

Additionally, you can generate a script to upgrade between two versions with:

$ storyboard-db-manage --config-file /path/to/storyboard.conf \
    upgrade <start version>:<end version> --sql

You can also upgrade the database incrementally, by specifying the number of revisions to apply:

$ storyboard-db-manage --config-file /path/to/storyboard.conf \
    upgrade --delta <# of revs>

Downgrading the database

If you need to downgrade to a version > 001 and < 049, you will need to first downgrade to version 049, then use commit acce431b30a32497064ad6d1ab3872358e1e60dc to downgrade further to the version you require. After this commit, the migrations lower than 049 were consolidated and can no longer be used individually.

Downgrade the database by a certain number of revisions:

$ storyboard-db-manage --config-file /path/to/storyboard.conf \
    downgrade --delta <# of revs>

You can also downgrade to a specific version:

$ storyboard-db-manage --config-file /path/to/storyboard.conf downgrade 055

Similar to upgrading, you can use the --sql flag to generate an sql script to be applied later.