Уведомления

Группа в Telegram: @pythonsu

#1 Май 20, 2014 17:08:05

zlodiak
От: Россия
Зарегистрирован: 2014-01-19
Сообщения: 159
Репутация: +  0  -
Профиль   Адрес электронной почты  

ошибка no such table: userprofile

люди, помогите пожалуйста, у меня случился армагеддон

на моём django1.6-сайте была система регистрации. записи пользователей хранил в модели UserProfile, унаследованной от User. по ходу доработки сайта я дорабатывал UserProfile(например добавлял связанные таблицы через foreignKey)

проблема в том, что однажды я решил уничтожить UserProfile через интерфейс программы sqlLiteStudio. затем попробовал вновь создать таблицы командой python manage.py syncdb . в результате получил следующее сообщение об ошибке:

c:\Python33\django_projects\drummersaransk_w>python manage.py syncdb
Traceback (most recent call last):
  File "C:\Python33\lib\site-packages\django\db\backends\util.py", line 53, in e
xecute
    return self.cursor.execute(sql, params)
  File "C:\Python33\lib\site-packages\django\db\backends\sqlite3\base.py", line
450, in execute
    return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: no such table: drummersaransk_userprofile
The above exception was the direct cause of the following exception:
......
....
    self._result_cache = list(self.iterator())
  File "C:\Python33\lib\site-packages\django\db\models\query.py", line 1068, in
iterator
    for row in self.query.get_compiler(self.db).results_iter():
  File "C:\Python33\lib\site-packages\django\db\models\sql\compiler.py", line 70
9, in results_iter
    for rows in self.execute_sql(MULTI):
  File "C:\Python33\lib\site-packages\django\db\models\sql\compiler.py", line 78
2, in execute_sql
    cursor.execute(sql, params)
  File "C:\Python33\lib\site-packages\django\db\backends\util.py", line 69, in e
xecute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "C:\Python33\lib\site-packages\django\db\backends\util.py", line 53, in e
xecute
    return self.cursor.execute(sql, params)
  File "C:\Python33\lib\site-packages\django\db\utils.py", line 99, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "C:\Python33\lib\site-packages\django\utils\six.py", line 535, in reraise
    raise value.with_traceback(tb)
  File "C:\Python33\lib\site-packages\django\db\backends\util.py", line 53, in e
xecute
    return self.cursor.execute(sql, params)
  File "C:\Python33\lib\site-packages\django\db\backends\sqlite3\base.py", line
450, in execute
    return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such table: drummersaransk_userprofile

если интересно посмотреть код моделей, то он здесь

при этом. если удаляю UserProfile и затем создаю её SQL-запросом через интерфейс sqllitestudio, то таблица создаётся и сообщений об ошибках не выводится

и ещё информация. команда python manage.py test UserProfile выводит:
suite
    tests = self.test_loader.loadTestsFromNa
  File "C:\Python33\lib\unittest\loader.py",
    module = __import__('.'.join(parts_copy)
ImportError: No module named 'UserProfile'
это странно, так как импорт во всех файлах прописан правильно. в пользу этого говорит то, что сайт работает до того момента как я удаляю вручную таблицу USerProfile

Отредактировано zlodiak (Май 20, 2014 17:41:27)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version