diff --git a/CHANGELOG.rst b/CHANGELOG.rst index b1842037..69fe0fc2 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,7 +6,10 @@ This document describes changes between each past release. 3.1 (unreleased) ---------------- -- Nothing changed yet. +Added +===== + +- Document database migrations (#390) 3.0 (2018-11-25) diff --git a/Makefile b/Makefile index 8c48ed4c..1f36a846 100644 --- a/Makefile +++ b/Makefile @@ -61,6 +61,11 @@ create-database-revision: ## Create a new database revision @read -p "Please enter a message describing this revision: " rev_message; \ $(PYTHON) -m ihatemoney.manage db migrate -d ihatemoney/migrations -m "$${rev_message}" +.PHONY: create-empty-database-revision +create-empty-database-revision: ## Create an empty database revision + @read -p "Please enter a message describing this revision: " rev_message; \ + $(PYTHON) -m ihatemoney.manage db revision -d ihatemoney/migrations -m "$${rev_message}" + .PHONY: build-requirements build-requirements: ## Save currently installed packages to requirements.txt $(VIRTUALENV) $(TEMPDIR) diff --git a/docs/contributing.rst b/docs/contributing.rst index 1944d678..bcb3f162 100644 --- a/docs/contributing.rst +++ b/docs/contributing.rst @@ -39,7 +39,6 @@ Accessing dev server In any case, you can point your browser at `http://localhost:5000 `_. It's as simple as that! - Updating -------- @@ -47,6 +46,22 @@ In case you want to update to newer versions (from git), you can just run the "u make update +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:: + + 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. eg: to add data migrations. + +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 + Useful settings ----------------