2015-05-31 3 views
2

Я уже прочитал существующий ответ об этой проблеме в Stackoverflow. Но никто не работал для меня. Когда я запускаю manage.py test, я получаю следующее, хотя мой сайт работает нормально!Ошибка программирования Django 1.8: отношение auth_user не существует при запуске теста

$ ./manage.py test --verbosity=3 
manage.py test --verbosity=3 
nosetests --with-coverage --cover-package=project.iobserve.forms,project.iobserve.models,project.iobserve.views --verbosity=3 
nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$'] 
nose.plugins.cover: INFO: Coverage report will include only packages: ['project.iobserve.forms', 'project.iobserve.models', 'project.iobserve.views'] 
Creating test database for alias 'default' ('test_iobserve')... 
Got an error creating the test database: database "test_iobserve" already exists 

Type 'yes' if you would like to try deleting the test database 'test_iobserve', or 'no' to cancel: yes 
Destroying old test database 'default'... 
Operations to perform: 
    Synchronize unmigrated apps: mptt, djangobower, iobserve, staticfiles, twitter, messages, leaflet, allauth, facebook, multiselectfield, django_nose, rest_framework, honeypot 
    Apply all migrations: account, sessions, admin, sites, auth, contenttypes, socialaccount 
Synchronizing apps without migrations: 
Running pre-migrate handlers for application admin 
Running pre-migrate handlers for application contenttypes 
Running pre-migrate handlers for application sites 
Running pre-migrate handlers for application auth 
Running pre-migrate handlers for application sessions 
Running pre-migrate handlers for application rest_framework 
Running pre-migrate handlers for application mptt 
Running pre-migrate handlers for application djangobower 
Running pre-migrate handlers for application honeypot 
Running pre-migrate handlers for application leaflet 
Running pre-migrate handlers for application allauth 
Running pre-migrate handlers for application account 
Running pre-migrate handlers for application socialaccount 
Running pre-migrate handlers for application twitter 
Running pre-migrate handlers for application facebook 
Running pre-migrate handlers for application iobserve 
    Creating tables... 
    Creating table iobserve_person 
    Creating table iobserve_bibliographicreference 
    Creating table user_profile 
    Creating table iobserve_coordinates 
    Creating table iobserve_observingsite 
    Creating table iobserve_astronomicalorganisation 
    Creating table iobserve_building 
    Creating table iobserve_dome 
    Creating table iobserve_tool 
    Creating table iobserve_observingtool 
    Creating table iobserve_telescope 
    Creating table iobserve_toolcomponent 
    Creating table iobserve_mirror 
    Creating table iobserve_astronomicalcoordinates 
    Creating table iobserve_alias 
    Creating table iobserve_objecttype 
    Creating table iobserve_astronomicalflux 
    Creating table iobserve_astronomicalobject 
    Running deferred SQL... 
Traceback (most recent call last): 
    File "manage.py", line 7, in <module> 
    execute_from_command_line(sys.argv) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line 
    utility.execute() 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django/core/management/__init__.py", line 330, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django/core/management/commands/test.py", line 30, in run_from_argv 
    super(Command, self).run_from_argv(argv) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django/core/management/commands/test.py", line 74, in execute 
    super(Command, self).execute(*args, **options) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute 
    output = self.handle(*args, **options) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django/core/management/commands/test.py", line 90, in handle 
    failures = test_runner.run_tests(test_labels) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django_nose/runner.py", line 350, in run_tests 
    result = self.run_suite(nose_argv) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django_nose/runner.py", line 297, in run_suite 
    addplugins=plugins_to_add) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/nose/core.py", line 121, in __init__ 
    **extra_args) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/main.py", line 95, in __init__ 
    self.runTests() 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/nose/core.py", line 207, in runTests 
    result = self.testRunner.run(self.test) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/nose/core.py", line 50, in run 
    wrapper = self.config.plugins.prepareTest(test) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/nose/plugins/manager.py", line 99, in __call__ 
    return self.call(*arg, **kw) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/nose/plugins/manager.py", line 167, in simple 
    result = meth(*arg, **kw) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django_nose/plugin.py", line 76, in prepareTest 
    self.old_names = self.runner.setup_databases() 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django_nose/runner.py", line 533, in setup_databases 
    return super(NoseTestSuiteRunner, self).setup_databases() 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django/test/runner.py", line 166, in setup_databases 
    **kwargs 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django/test/runner.py", line 370, in setup_databases 
    serialize=connection.settings_dict.get("TEST", {}).get("SERIALIZE", True), 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django/db/backends/base/creation.py", line 368, in create_test_db 
    test_flush=not keepdb, 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django/core/management/__init__.py", line 120, in call_command 
    return command.execute(*args, **defaults) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute 
    output = self.handle(*args, **options) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 179, in handle 
    created_models = self.sync_apps(connection, executor.loader.unmigrated_apps) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 317, in sync_apps 
    cursor.execute(statement) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute 
    return self.cursor.execute(sql, params) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django/db/utils.py", line 97, in __exit__ 
    six.reraise(dj_exc_type, dj_exc_value, traceback) 
    File "/Users/onekiloparsec/.virtualenvs/iobs-debug/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute 
    return self.cursor.execute(sql) 
django.db.utils.ProgrammingError: relation "auth_user" does not exist 

Единственная проблемная линия - это связь между UserProfile и пользователем в моих моделях. Ниже модели UserProfile. Я также запускал makemigrations и migrate отдельно, последовательно и т. Д. Но когда я запускаю тесты, он терпит неудачу. У меня действительно нет подсказки. Любая помощь будет принята с благодарностью!

from django.conf import settings 
from django.db import models 

from allauth.account.models import EmailAddress 
from allauth.socialaccount.models import SocialAccount 

import hashlib 

class UserProfile(models.Model): 
    class Meta: 
     db_table = 'user_profile' 
     app_label = 'iobserve' 

    user = models.OneToOneField(settings.AUTH_USER_MODEL, related_name='profile') 

    def __unicode__(self): 
     return "{}'s profile".format(self.user.username) 

    def account_verified(self): 
     if self.user.is_authenticated: 
      result = EmailAddress.objects.filter(email=self.user.email) 
      if len(result): 
       return result[0].verified 
     return False 

    def profile_image_url(self): 
     fb_uid = SocialAccount.objects.filter(user_id=self.user.id, provider='facebook') 
     if len(fb_uid): 
      return "http://graph.facebook.com/{}/picture?width=40&height=40".format(fb_uid[0].uid) 
     return "http://www.gravatar.com/avatar/{}?s=40".format(hashlib.md5(self.user.email).hexdigest()) 
+0

Можете ли вы показать вывод с помощью '--verbosity = 3'? – knbk

+0

Спасибо за проверку! Я обновил свой пост. – onekiloparsec

ответ

2

Вашего iobserve приложение не имеет какую-либо миграции, и вы не можете иметь отношение, например, OneToOneField, из unmigrated приложения к мигрированному приложению.

Чтобы создать начальные миграции для приложения iobserve, вам необходимо запустить manage.py makemigrations iobserve. Только когда начальные миграции существуют, будет manage.py makemigrations без каких-либо ярлыков приложений создавать новые миграции для этого приложения.

+0

Большое спасибо. Я запускал «makemigrations» в прошлом, но в потоке тестов, которые я сделал, возможно, я забыл – onekiloparsec

Смежные вопросы