Я использовал Юг на своем проекте некоторое время, но я недавно сделал огромный объем разработки и изменил машину разработки, и я думаю что-то испорченное в процессе. Проект хорошо работает, но я не могу применить миграции. Каждый раз, когда я пытаюсь применить миграцию, я получаю следующий traceback:
danpalmer:pest Dan$ python manage.py migrate frontend
Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_manager(settings)
File "/Library/Python/2.6/site-packages/django/core/management/__init__.py", line 362, in execute_manager
utility.execute()
File "/Library/Python/2.6/site-packages/django/core/management/__init__.py", line 303, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Library/Python/2.6/site-packages/django/core/management/base.py", line 195, in run_from_argv
self.execute(*args, **options.__dict__)
File "/Library/Python/2.6/site-packages/django/core/management/base.py", line 222, in execute
output = self.handle(*args, **options)
File "/Library/Python/2.6/site-packages/South-0.7-py2.6.egg/south/management/commands/migrate.py", line 102, in handle
delete_ghosts = delete_ghosts,
File "/Library/Python/2.6/site-packages/South-0.7-py2.6.egg/south/migration/__init__.py", line 182, in migrate_app
applied = check_migration_histories(applied, delete_ghosts)
File "/Library/Python/2.6/site-packages/South-0.7-py2.6.egg/south/migration/__init__.py", line 85, in check_migration_histories
m = h.get_migration()
File "/Library/Python/2.6/site-packages/South-0.7-py2.6.egg/south/models.py", line 34, in get_migration
return self.get_migrations().migration(self.migration)
File "/Library/Python/2.6/site-packages/South-0.7-py2.6.egg/south/models.py", line 31, in get_migrations
return Migrations(self.app_name)
File "/Library/Python/2.6/site-packages/South-0.7-py2.6.egg/south/migration/base.py", line 60, in __call__
self.instances[app_label] = super(MigrationsMetaclass, self).__call__(app_label_to_app_module(app_label), **kwds)
File "/Library/Python/2.6/site-packages/South-0.7-py2.6.egg/south/migration/base.py", line 88, in __init__
self.set_application(application, force_creation, verbose_creation)
File "/Library/Python/2.6/site-packages/South-0.7-py2.6.egg/south/migration/base.py", line 159, in set_application
raise exceptions.NoMigrations(application)
south.exceptions.NoMigrations: Application '<module 'django.contrib.auth' from '/Library/Python/2.6/site-packages/django/contrib/auth/__init__.pyc'>' has no migrations.
Я не то, который испытал с Югом, и я не встретил эту ошибку прежде. Единственное полезное упоминание, которое я могу найти онлайн об этой ошибке, для пред0.7, я думаю, и я нахожусь на Южных 0.7. Я работал 'easy_install-U Юг' только для проверки.
Я решил проблему.
Очевидно, вы не можете использовать South для миграции приложений, которые являются частью Django, например auth, поэтому я не знал, почему он пытался это сделать.
Я понял, что какое-то время у меня в проекте было другое приложение под названием auth. Я, должно быть, пытался перенести это в какой-то момент, прежде чем переименовывать его, и поэтому все испортил.
Я удалил записи истории миграции из базы данных для этого приложения, и все было в порядке.
Оставляю это здесь для будущих гуглеров
Недавно я столкнулся с этим исключением в одном из моих собственных приложений, а не в приложении contrib.
После некоторого размышления я заметил, что каким-то образом файл ...
app/migrations/__init__.py
... был удален, что означает, что python не может импортировать dir как модуль и т.д. и т.п.