Trying to update my app so it has the admin page so I run syncdb:
tyre77$ python manage.py syncdb
Syncing...
Creating tables ...
Installing custom SQL ...
Installing indexes ...
No fixtures found.
Synced:
> django.contrib.auth
> django.contrib.contenttypes
> django.contrib.sessions
> django.contrib.sites
> django.contrib.messages
> django.contrib.staticfiles
> south
> django.contrib.admin
Not synced (use migrations):
- OmniCloud_App
(use ./manage.py migrate to migrate these)
So that's alright! South is installed so we just do a little migrationing:
tyre77$ python manage.py migrate
Running migrations for OmniCloud_App:
- Nothing to migrate.
- Loading initial data for OmniCloud_App.
No fixtures found
Wait what? You just told me to migrate so I did, but there are no fixtures found so it isn't fixing the app not being synced!
The "No fixtures found." has nothing to do with south. South merely tries to reload the fixture data after having performed the schema/data migrations. Based on your output, it looks like you are already at the latest revision of your migrations.
The fixture it is looking for in this case is: initial_data.[xml/yaml/json]
. This is also the same fixture that will get loaded when you run syncdb
.
For example, when I try to migrate my application:
python manage.py migrate
Running migrations for home:
- Migrating forwards to 0001_initial.
> home:0001_initial
- Loading initial data for home.
No fixtures found.
However if I provide initial_data.json
, it will load this fixture after performing the migration.
Using South
Based on your question, it sounds like you might not have any migrations generated for your django app. You can start by running the following command:
python manage.py schemamigration OmniCloud_App --initial
This command will generate a file called 0001_initial.py
. When you run python manage.py migrate
, it will run this migration against your database.