0
我是新來的peewee,所以請原諒我,如果這是一個愚蠢的問題。我在谷歌和peewee食譜上進行了搜索,但到目前爲止還沒有找到解決辦法。SQLite3 OperationalError:表XYZ沒有列名爲ABC
所以,我有以下型號到我的數據庫表四:
class games_def(Model):
id = PrimaryKeyField()
name = TextField()
class Meta:
database = dbmgr.DB
class users_def(Model):
id = PrimaryKeyField()
first_name = TextField()
last_name = TextField()
class Meta:
database = dbmgr.DB
class sessions(Model):
id = PrimaryKeyField()
game = ForeignKeyField(games_def, related_name = 'sessions')
user = ForeignKeyField(users_def, related_name = 'sessions')
comment = TextField()
class Meta:
database = dbmgr.DB
class world_states(Model):
session = ForeignKeyField(sessions)
time_step = IntegerField()
world_state = TextField()
class Meta:
database = dbmgr.DB
利用這些模型通過我peewee,工作正常連接到sqlite3的DB。連接已經建立 後,我做我的主Python代碼如下:
models.world_states.create(session = 1, time_step = 1)
然而,這給了我以下錯誤:
sqlite3.OperationalError: table world_states has no column named session_id
這基本上是正確的,表WORLD_STATE確實不包含這樣的欄目。
但是,在我的代碼中找不到任何對「session_id」的引用。
Whee peewee想使用該「session_id」colum名稱嗎?
我在這裏錯過了什麼嗎?
這是正確的,感謝馬亭!我唯一會添加的是,如果你創建了你的表,然後添加了一個字段,peewee不會「自動」在你的數據庫表中添加列。這必須手動完成。 – coleifer 2013-04-20 17:34:59
@coleifer:調整了措辭。 – 2013-04-20 20:41:22
天啊!非常感謝你爲此採訪了@MartijnPieters。經過四個痛苦的日子,我終於想出了我的問題。我有同樣的事情發生,我檢查了文檔,但他們寫出來的方式困惑了我,我不知道db_column實際上是指定指向哪一列。 – OzzyTheGiant 2016-10-05 21:01:56