Adding migrations README

* Simple info about migrations in main README.rst also

Change-Id: I0ab109471d9b36dcedc58bdef471ef9acf5898f3
(cherry picked from commit f399e3be55)
This commit is contained in:
Nikolay Mahotkin 2015-05-05 14:41:25 +03:00 committed by Renat Akhmerov
parent 2e9661deff
commit 0d1e528db6
3 changed files with 78 additions and 2 deletions

View File

@ -120,8 +120,19 @@ Before starting Mistral server, run sync_db script. It prepares the DB, creates
python tools/sync_db.py --config-file path_to_config*
*Note: After local installation you will see **mistral-server** command in your environment*.
*Note: After local installation you will see **mistral-server** and **mistral-db-manage** commands in your environment*.
Migrations
----------
*mistral-db-manage* command can be used for migrations. If Mistral is not installed in system then this script can be
found at *mistral/db/sqlalchemy/migration/cli.py*, it can be executed using Python.
For updating the database to the latest revision type::
mistral-db-manage --config-file <path-to-mistral.conf> upgrade head
For more detailed information about *mistral-db-manage* script please see migration readme here - https://github.com/stackforge/mistral/blob/master/mistral/db/sqlalchemy/migration/alembic_migrations/README.md
Running Mistral API server
--------------------------

View File

@ -1 +0,0 @@
Generic single-database configuration.

View File

@ -0,0 +1,66 @@
The migrations in `alembic_migrations/versions` contain the changes needed to migrate
between Mistral database revisions. A migration occurs by executing a script that
details the changes needed to upgrade the database. The migration scripts
are ordered so that multiple scripts can run sequentially. The scripts are executed by
Mistral's migration wrapper which uses the Alembic library to manage the migration. Mistral
supports migration from Kilo or later.
You can upgrade to the latest database version via:
```
mistral-db-manage --config-file /path/to/mistral.conf upgrade head
```
You can populate the database with standard actions and workflows:
```
mistral-db-manage --config-file /path/to/mistral.conf populate
```
To check the current database version:
```
mistral-db-manage --config-file /path/to/mistral.conf current
```
To create a script to run the migration offline:
```
mistral-db-manage --config-file /path/to/mistral.conf upgrade head --sql
```
To run the offline migration between specific migration versions:
```
mistral-db-manage --config-file /path/to/mistral.conf upgrade <start version>:<end version> --sql
```
Upgrade the database incrementally:
```
mistral-db-manage --config-file /path/to/mistral.conf upgrade --delta <# of revs>
```
Or, upgrade the database to one newer revision:
```
mistral-db-manage --config-file /path/to/mistral.conf upgrade +1
```
Create new revision:
```
mistral-db-manage --config-file /path/to/mistral.conf revision -m "description of revision" --autogenerate
```
Create a blank file:
```
mistral-db-manage --config-file /path/to/mistral.conf revision -m "description of revision"
```
This command does not perform any migrations, it only sets the revision.
Revision may be any existing revision. Use this command carefully.
```
mistral-db-manage --config-file /path/to/mistral.conf stamp <revision>
```
To verify that the timeline does branch, you can run this command:
```
mistral-db-manage --config-file /path/to/mistral.conf check_migration
```
If the migration path has branch, you can find the branch point via:
```
mistral-db-manage --config-file /path/to/mistral.conf history