Search code examples
djangodjango-south

Configuring django south with PostgreSQL


I can't get my site running with south. I've successfully installed south, and I can 'import south' successfully.

./manage.py shell
>>> import south
>>>

However, once I add 'south' to INSTALLED_APPS, and run ./manage.py syncdb (to complete the installation), I get the following error:

There is no South database module 'south.db.django.db.backends.postgresql_psycopg2' for your database. Please either choose a supported database, check for SOUTH_DATABASE_ADAPTER[S] settings, or remove South from INSTALLED_APPS.

I'm using a PostgreSQL database, and the postgresql_psycopg2 library. I'm confused, because Postgres is definitely a supported database. Do I need to manually configure SOUTH_DATABASE_ADAPTER in settings.py?

Edit: Here are my database settings. I know they work -- the (test) server I'm trying to get this running on has been talking to the DB properly for weeks.

DATABASE_ENGINE = 'postgresql_psycopg2' 
DATABASE_NAME = 'iknowthisiscorrect' 
DATABASE_HOST = '' #localhost
DATABASE_PORT = '5432'  # I've configured Postgres to use this port

Solution

  • I found this comment in the South source code. Look at line #63.

     63     # This error should only be triggered on 1.1 and below. 
    64      sys.stderr.write( 
    65          ( 
    66              "There is no South database module '%s' for your database. " + \ 
    67              "Please either choose a supported database, check for " + \ 
    68              "SOUTH_DATABASE_ADAPTER[S] settings, " + \ 
    69              "or remove South from INSTALLED_APPS.\n" 
    70          ) % (module_name,) 
    

    Which version of Django are you using? Is it <=1.1?