2014-12-01 40 views
5

我在Django 1.7中遇到了與特定部署中的新App Registry有關的問題。通常我會吹掉實例並重新創建實例,但是當我銷燬實例時它會繼續發生。Django 1.7應用程序標籤不是唯一的,重複foo

它總是導致此錯誤的產品應用程序,並且我使用了app.py文件將標籤更改爲sc_products,但現在它已經定義了sc_products。

在這個特殊的例子中,我試圖遷移應用程序。

Running migrations: 
    Applying sc_products.0001_initial...Traceback (most recent call last): 
    File "manage.py", line 9, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line 
    utility.execute() 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute 
    output = self.handle(*args, **options) 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 160, in handle 
    executor.migrate(targets, plan, fake=options.get("fake", False)) 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 63, in migrate 
    self.apply_migration(migration, fake=fake) 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 91, in apply_migration 
    if self.detect_soft_applied(migration): 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 135, in detect_soft_applied 
    apps = project_state.render() 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/db/migrations/state.py", line 57, in render 
    self.apps = Apps([AppConfigStub(label) for label in sorted(self.real_apps + list(app_labels))]) 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/apps/registry.py", line 56, in __init__ 
    self.populate(installed_apps) 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/apps/registry.py", line 89, in populate 
    "duplicates: %s" % app_config.label) 
django.core.exceptions.ImproperlyConfigured: Application labels aren't unique, duplicates: sc_products 

我已經通過therefromhere做如下回答:

How to resolve "django.core.exceptions.ImproperlyConfigured: Application labels aren't unique, duplicates: foo" in Django 1.7?

回答

2

我有同樣的問題,剛纔偶然發現了這一點。在調試django一段時間後,我可能會爲你等待已久的答案。

這很可能是因爲您的應用程序最終被同時視爲未移植和遷移(即使更改應用程序標籤時也會產生相同的錯誤),並且這是因爲您的應用程序同時存在舊式(南部)遷移和新式(django)遷移。

處理此問題的最佳和最簡單的方法是重新開始。刪除所有已編號的遷移(例如rm migrations/0???_*.py*)並重新調用manage.py makemigrations,以確保只有django遷移已保留並且是最新的。

1

檢查您的INSTALLED_APPS。我不小心有同樣的應用程序列出兩次,並有類似的錯誤。

相關問題