From b8c82419455587843df95c01bd9555eaab094854 Mon Sep 17 00:00:00 2001 From: Andrew Godwin Date: Thu, 23 Jan 2014 11:45:25 +0000 Subject: [PATCH] Add docs about converting from South --- docs/topics/migrations.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/topics/migrations.txt b/docs/topics/migrations.txt index 7e40be53eb0..c585389a14d 100644 --- a/docs/topics/migrations.txt +++ b/docs/topics/migrations.txt @@ -356,3 +356,22 @@ available at the top level of a module it is not serializable. Django will write out the value as an instatiation of your class with the given arguments, similar to the way it writes out references to Django fields. + + +Upgrading from South +-------------------- + +If you already have pre-existing migrations created with +`South 0.x `_, then the upgrade process to use +``django.db.migrations`` is quite simple: + +* Ensure all installs are fully up-to-date with their migrations +* Delete all your (numbered) migration files, but not the directory or __init__.py - make sure you remove the ``.pyc`` files too. +* Run ``python manage.py makemigrations``. Django should see the empty migration directories and make new initial migrations in the new format. +* Run ``python manage.py migrate``. Django will see that the tables for the initial migrations already exist and mark them as applied without running them. + +That's it! The only complication is if you have a circular dependency loop +of foreign keys; in this case, ``makemigrations`` might make more than one +initial migration, and you'll need to mark them all as applied using:: + + python manage.py migrate --fake yourappnamehere