Я запускаю syncdb для создания sqlite db. Он работал до недавнего времени, и я не вижу ничего, что я изменил, что может привести к его провалу. В основном я просто изменил имена полей.OperationalError: нет такой таблицы на исходном syncdb
У меня есть следующие в models.py:
class GC_User(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
email = models.EmailField()
wp_userID = models.PositiveSmallIntegerField(unique=True)
Когда я бегу SyncDB после удаления старого файла базы данных, я получаю 150 строк TRACEBACK, последняя часть которой:
File "C:\Python33\lib\site-packages\django\db\backends\util.py", line 53, in execute
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: gameconapp_gc_user
Любые мысли о том, что может быть причиной этого? Я могу добавить больше трассировки, если это будет полезно.
Спасибо!
Update: После долгого копания, мой партнер определил, что проблема заключалась в том, что приложения init.py было вызывалось. Поскольку обычная процедура пыталась получить доступ к таблице GC_User, она не получила такую табличную ошибку.
На данный момент я прокомментировал это, поэтому я могу запустить syncdb, и как только мы будем в производстве, мы не будем перезагружать db, но мне неинтересно, что приложение инициализируется до того, как база данных установлена вверх.
Вы можете инициализировать свое приложение в 'try/except' и терпеть неудачу, если таблица базы данных еще не установлена. Таким образом, вам не нужно думать о раскомментировании производственных изменений. – Thomas