Приспособления миграции не найдены, но таблица не обновляется с помощью Django и South - PullRequest
2 голосов
/ 10 октября 2011

Попытка обновить мое приложение, чтобы оно имело страницу администратора, поэтому я запускаю 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)

Так что все в порядке! Юг установлен, поэтому мы просто немного мигрируем:

tyre77$ python manage.py migrate
Running migrations for OmniCloud_App:
- Nothing to migrate.
 - Loading initial data for OmniCloud_App.
No fixtures found

Подожди что? Вы только что сказали мне выполнить миграцию, что я и сделал, но не найдено никаких приспособлений, поэтому оно не исправляет синхронизацию приложения!

1 Ответ

2 голосов
/ 10 октября 2011

"Не найдено никаких приспособлений".не имеет ничего общего с югом.South просто пытается перезагрузить данные прибора после выполнения миграции схемы / данных.Исходя из вашего вывода, похоже, что вы уже в последней редакции ваших миграций.

В этом случае ищет прибор: initial_data.[xml/yaml/json].Это также тот же прибор, который будет загружен при запуске syncdb.

Например, когда я пытаюсь перенести мое приложение:

python manage.py migrate
Running migrations for home:
 - Migrating forwards to 0001_initial.
 > home:0001_initial
 - Loading initial data for home.
No fixtures found.

Однако, если я предоставлю initial_data.json, он будет загружать это устройство после выполнения миграции.

Использование Юга

Исходя из вашего вопроса, может показаться, что для вашего приложения django не было сгенерированных миграций,Вы можете начать с выполнения следующей команды:

python manage.py schemamigration OmniCloud_App --initial

Эта команда создаст файл с именем 0001_initial.py.Когда вы запустите python manage.py migrate, он запустит эту миграцию для вашей базы данных.

...