0

I am using Django 1.6 and South for migrations. I have one single fixture initial_data.json. When i run ./manage.py syncdb I get

Installed 48 object(s) from 1 fixture(s)

However when I run ./manage.py migrate I get

Installed 96 object(s) from 2 fixture(s)

Looks like information doubles. How to watch what fixtures are installed exactly on migrate command? This issue is important for me because I have data duplication on fixtures load in some other place in the project and this could be the reason.

upd I followed the suggestion to creade data migration to load fixtures on migrate but the question with two migrations instead of one remained:

./manage.py migrate
Running migrations for hello:
 - Migrating forwards to 0007_migration_fixture.
 > hello:0007_migration_fixture
 - Migration 'hello:0007_migration_fixture' is marked for no-dry-run.
Installed 102 object(s) from 2 fixture(s)
 - Loading initial data for hello.
Installed 0 object(s) from 0 fixture(s)
ferrangb
  • 2,012
  • 2
  • 20
  • 34
Sashko Lykhenko
  • 1,554
  • 4
  • 20
  • 36

1 Answers1

3

Do not use initial_data fixtures with South. Rename initial_data.json to some other name and load this fixture in the data migration:

def forwards(self, orm):
    from django.core.management import call_command
    call_command("loaddata", "my_fixture.json")
catavaran
  • 44,703
  • 8
  • 98
  • 85