我正在运行 syncdb 来创建一个 sqlite 数据库。它直到最近才起作用,而且我没有看到任何我所做的更改会导致它失败。大多数情况下,我只是更改了一些字段名称。
我在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)
当我删除旧的 db 文件后运行 syncdb 时,我得到了 150 行回溯,其中最后一部分是:
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
关于可能导致这种情况的任何想法?如果有帮助的话,我可以添加更多的回溯。
谢谢!
更新:经过大量挖掘,我的伙伴确定问题在于应用程序的init.py被调用。由于那里的一个例程试图访问 GC_User 表,它得到了 no such table 错误。
现在我已经把它注释掉了,这样我就可以运行syncdb了,一旦我们投入生产,我们就不会重置数据库,但是在设置数据库之前初始化应用程序对我来说是违反直觉的。