south django migrate

2019-04-08 14:08发布

问题:

I just did:

python manage.py schemamigration TestDBapp1 --initial
python manage.py schemamigration TestDBapp1 --auto

Successfully.

But if I enter: python manage.py migrate TestDBapp1

I get this: sqlite3.OperationalError: table "TestDBapp1_xyz" already exists

What could be the problem?

回答1:

I suspect that you already executed syncdb which created the tables. South tries to create them again during migrate and naturally the database complains.

To avoid this you have to tell South to "fake" the initial migration.

python manage.py migrate TestDBapp1 --fake

As the name indicates this pretends to migrate. Note that this is an one time step. South will handle your future syncdb and migrate without requiring --fake.