【发布时间】:2011-02-20 04:51:03
【问题描述】:
我在我的项目中使用 South 已经有一段时间了,但我最近做了大量的开发并更换了开发机器,我认为在这个过程中出现了一些问题。该项目运行良好,但我无法应用迁移。每当我尝试应用迁移时,我都会得到以下回溯:
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.
我对 South 没有那么丰富的经验,以前也没有遇到过这个错误。我可以在网上找到关于这个错误的唯一有用的提示是我认为是 pre-0.7 并且我在 South 0.7。我运行了“easy_install -U South”以确保。
【问题讨论】:
-
您是否先同步db 以确保Southmigrationhistory 表存在?还是您在移动机器时导入了数据库转储?
-
另外,django.contrib.auth 不应该使用迁移(除非你自己动手破解它)。您是否为 contrib.auth 手动创建了迁移目录?
-
我首先做了一个同步数据库。该数据库与我只是使用 SQLite 数据库进行开发的数据库相同。对于第二点,请参阅下面的解决方案。
-
taggit应用程序遇到了同样的异常。但是当我使用另一台服务器的数据库转储时发生了这种情况:服务器的版本为 0.11.2,而我的版本为旧的 0.9.3。在pip install -U django-taggit之后问题就消失了。
标签: database django migration django-south