title: Trouble getting Django set up on Heroku using South - keep getting ProgrammingError: relation does not exist
body: <p>This is what I've been doing:</p>
  
  <p>Locally - where I've got a brand new postgres database, and two models.py files from two different apps:</p>
  
  <pre><code>python manage.py syncdb
  python manage.py schemamigration api --initial
  python manage.py schemamigration extapi --initial
  python manage.py migrate api 0001 --fake
  python manage.py migrate extapi 0001 --fake
  </code></pre>
  
  <p>This works swell, and I can add stuff to the database just fine.</p>
  
  <p>Then, when pushing to Heroku, where I've already created an empty app:</p>
  
  <pre><code>git add .
  git commit -m "Ready to go to Heroku"
  git push heroku master
  heroku run python manage.py syncdb
  </code></pre>
  
  <p>That outputs this:</p>
  
  <pre><code>Running `python manage.py syncdb` attached to terminal... up, run.9548
  Syncing...
  Creating tables ...
  Creating table django_admin_log
  Creating table auth_permission
  Creating table auth_group_permissions
  Creating table auth_group
  Creating table auth_user_groups
  Creating table auth_user_user_permissions
  Creating table auth_user
  Creating table django_content_type
  Creating table django_session
  Creating table south_migrationhistory
  
  # create superuser prompt...
  Superuser created successfully.
  Installing custom SQL ...
  Installing indexes ...
  Installed 0 object(s) from 0 fixture(s)
  
  Synced:
   &gt; django.contrib.admin
   &gt; django.contrib.auth
   &gt; django.contrib.contenttypes
   &gt; django.contrib.sessions
   &gt; django.contrib.messages
   &gt; django.contrib.staticfiles
   &gt; south
   &gt; rest_framework
  
  Not synced (use migrations):
   - api
   - extapi
  </code></pre>
  
  <p>Then I try to migrate those apps with <code>heroku run python manage.py migrate</code> and get this error:</p>
  
  <pre><code>Running `python manage.py migrate` attached to terminal... up, run.3724
  Running migrations for api:
   - Migrating forwards to 0001_initial.
   &gt; api:0001_initial
  FATAL ERROR - The following SQL query failed: ALTER TABLE "api_song" ADD CONSTRAINT "summary_id_refs_id_36bb6e06" FOREIGN KEY ("summary_id") REFERENCES "extapi_summary" ("id") DEFERRABLE INITIALLY DEFERRED;
  The error was: relation "extapi_summary" does not exist
  
  Error in migration: api:0001_initial
  Traceback (most recent call last):
    File "manage.py", line 10, in &lt;module&gt;
      execute_from_command_line(sys.argv)
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
      utility.execute()
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
      self.fetch_command(subcommand).run_from_argv(self.argv)
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 242, in run_from_argv
      self.execute(*args, **options.__dict__)
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 285, in execute
      output = self.handle(*args, **options)
    File "/app/.heroku/python/lib/python2.7/site-packages/south/management/commands/migrate.py", line 111, in handle
      ignore_ghosts = ignore_ghosts,
    File "/app/.heroku/python/lib/python2.7/site-packages/south/migration/__init__.py", line 220, in migrate_app
      success = migrator.migrate_many(target, workplan, database)
    File "/app/.heroku/python/lib/python2.7/site-packages/south/migration/migrators.py", line 254, in migrate_many
      result = migrator.__class__.migrate_many(migrator, target, migrations, database)
    File "/app/.heroku/python/lib/python2.7/site-packages/south/migration/migrators.py", line 329, in migrate_many
      result = self.migrate(migration, database)
    File "/app/.heroku/python/lib/python2.7/site-packages/south/migration/migrators.py", line 133, in migrate
      result = self.run(migration, database)
    File "/app/.heroku/python/lib/python2.7/site-packages/south/migration/migrators.py", line 114, in run
      return self.run_migration(migration, database)
    File "/app/.heroku/python/lib/python2.7/site-packages/south/migration/migrators.py", line 85, in run_migration
      south.db.db.execute_deferred_sql()
    File "/app/.heroku/python/lib/python2.7/site-packages/south/db/generic.py", line 318, in execute_deferred_sql
      self.execute(sql)
    File "/app/.heroku/python/lib/python2.7/site-packages/south/db/generic.py", line 282, in execute
      cursor.execute(sql, params)
    File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/util.py", line 53, in execute
      return self.cursor.execute(sql, params)
    File "/app/.heroku/python/lib/python2.7/site-packages/django/db/utils.py", line 99, in __exit__
      six.reraise(dj_exc_type, dj_exc_value, traceback)
    File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/util.py", line 53, in execute
      return self.cursor.execute(sql, params)
  django.db.utils.ProgrammingError: relation "extapi_summary" does not exist
  </code></pre>
  
  <p>To me, it looks like the tables just aren't even being created, but I have no idea why not. When I run <code>heroku run python manage.py sqlall</code> it says everything's been made, but then I look at the database itself (the one heroku makes on s3) there's nothing from app_one and app_two. Again, this all works perfect locally, it's just when it goes up on heroku that things fall apart.</p>