Update the database

django-paypal uses South for migrations for Django < 1.7, and the built in Django migrations framework for Django >= 1.7.

To update your database:

  • For Django < 1.7:

    • Ensure South is installed if it isn’t already:

      • Do:

        pip install 'South>=1.0.1'
        
      • Add ‘south’ to your INSTALLED_APPS setting.

      • Run the following to install South tables:

        ./manage.py syncdb
        
    • Then for each time you install or upgrade django-paypal, run:

      ./manage.py migrate
      
  • For Django >= 1.7:

    ./manage.py migrate
    

Upgrading from very old versions

If you using Django < 1.7 and are upgrading from a very old version (before 0.1.1) that wasn’t using South, you will have to use --fake - see http://south.readthedocs.org/en/latest/commands.html?highlight=fake

It will probably look something like:

./manage.py migrate ipn --fake --initial
./manage.py migrate pdt --fake --initial
./manage.py migrate pro --fake --initial
./manage.py migrate ipn
./manage.py migrate pdt
./manage.py migrate pro

depending on what apps you have installed.

Please also see Release notes.

Upgrading to Django 1.7

If you installed django-paypal with an older version of Django, you will have been using South to handle database migrations. Due to the new built-in database migration framework in Django 1.7, the upgrade procedure is slightly complicated.

The recommended upgrade procedure is:

  • Before upgrading to Django 1.7, first upgrade django-paypal to the latest version and run migrations as above (including deploying to your production environment and running migrations there).

  • Then upgrade Django to 1.7, and run the following as appropriate for your situation:

    ./manage.py migrate ipn --fake
    ./manage.py migrate pdt --fake
    ./manage.py migrate pro --fake
    

    In this way, you can avoid running equivalent migrations twice (the South versions and the Django built-in versions).