Skip to content

Commit

Permalink
Improve documentation regarding database migrations (#569)
Browse files Browse the repository at this point in the history
  • Loading branch information
zorun committed Apr 24, 2020
1 parent 7587e29 commit d4ad149
Showing 1 changed file with 20 additions and 5 deletions.
25 changes: 20 additions & 5 deletions docs/contributing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -48,21 +48,36 @@ In case you want to update to newer versions (from Git), you can just run the "u
Create database migrations
--------------------------

In case you need to modify the database schema, first update the models in
``ihatemoney/models.py``. Then run the following command to create a new
database revision file::
In case you need to modify the database schema, first make sure that you have
an up-to-date database by running the dev server at least once (the quick way
or the hard way, see above). The dev server applies all existing migrations
when starting up.

You can now update the models in ``ihatemoney/models.py``. Then run the following
command to create a new database revision file::

make create-database-revision

If your changes are simple enough, the generated script will be populated with
the necessary migrations steps. You can edit the generated script. e.g: To add
data migrations.
the necessary migrations steps. You can view and edit the generated script, which
is useful to review that the expected model changes have been properly detected.
Usually the auto-detection works well in most cases, but you can of course edit the
script to fix small issues. You could also edit the script to add data migrations.

When you are done with your changes, don't forget to add the migration script to
your final git commit!

If the migration script looks completely wrong, remove the script and start again
with an empty database. The simplest way is to remove or rename the dev database
located at ``/tmp/ihatemoney.db``, and run the dev server at least once.

For complex migrations, it is recommended to start from an empty revision file
which can be created with the following command::

make create-empty-database-revision

You then need to write the migration steps yourself.

Useful settings
----------------

Expand Down

0 comments on commit d4ad149

Please sign in to comment.