Skip to content

Migration to a new data model

Oscar Peña del Rio edited this page Jan 16, 2015 · 1 revision

Since the release of Django 1.7, migrations are natively supported, without the need to rely on tools and extensions such as South.

If you are interested in migrating a legacy labman_ud database with the latest models schema, these are the general steps to perform. Should you have any doubt, don't hesitate to ask us for further details.

  • If your installation runs a django version prior to 1.7, first update django (if you are using pip, run: pip install --upgrade django)
  • Remove all the /migrations folders within the apps (you can check the app_list in the INSTALLED_APPS section of settings/base.py
  • At the same level as the manage.py file, run: python manage.py makemigrations + settings (if any). This should have created a /migrations folder within each app.
  • At this moment, you have a file per app with the current schema following your models.py files.
  • Bring the latest repository version from GitHub: git pull.
  • Run again the makemigrations command. A new file will be created in each apps' /migrations folder with the required updates to perform between schemas.
  • Run the following command to update the database to the new schemas: python manage.py migrate + settings, if any. Follow the instructions in the prompt during this process, as it may require default values for non-nullable fields.
  • Re-run your deploy's server and enjoy!
Clone this wiki locally