12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- Upgrade a database
- ==================
- Database schema migration are handled in two ways:
- * New tables
- For this we simply rely on the ``createdb`` script used when creating the
- database the first time.
- * Changes to existing tables
- For changes to existing tables, we rely on `Alembic <http://alembic.readthedocs.org/>`_.
- This allows us to do upgrade and downgrade of schema migration, kind of like
- one would do commits in a system like git.
- To upgrade the database to the latest version simply run:
- ::
- alembic upgrade head
- This may fail for different reasons:
- * The change was already made in the database
- This can be because the version of the database schema saved is incorrect.
- It can be debugged using the following commands:
- * Find the current revision: ``alembic current``
- * See the entire history: ``alembic history``
- Once the revision at which your database should be is found (in the history)
- you can declare that your database is at this given revision using:
- ``alembic stamp <revision id>``.
- Eventually, if you do not know where your database is or should be, you can
- do an iterative process stamping the database for every revision, one by one
- trying everytime to ``alembic upgrade`` until it works.
- * The database used does not support some of the changes
- SQLite is handy for development but does not support all the features of a
- real database server. Upgrading a SQLite database might therefore not work,
- depending on the changes done.
- In some cases, if you are using a SQLite database, you will have to destroy
- it and create a new one.
|