2016-08-11 14 views
0

我不斷收到此錯誤在我的代碼,當它似乎沒有問題。我使用Peewee和SQLite和Flask。peewee.OperationalError:表要點沒有列命名名稱

這是我的代碼。

from peewee import * 

import datetime 

DB = SqliteDatabase("gist.db") 

class Gist(Model): 
    name = CharField() 
    content = TextField() 
    description = TextField() 
    join_date = DateTimeField(default=datetime.datetime.now) 

    class Meta: 
     database = DB 

def initialize(): 
    DB.connect() 
    DB.create_tables([Gist], safe=True) 
    DB.close() 

下面是創建實例代碼:

@app.route("/", methods=("GET", "POST")) 
def index(): 
    form = forms.GistForm() 
    if form.validate_on_submit(): 
     models.Gist.create(name=form.name.data, 
          content=form.content.data, 
          description=form.description.data) 
     flash("Message posted! Thanks!", "success") 
    return render_template("index.html", form=form) 

感謝您的幫助,你可以給!

編輯:堆棧跟蹤對於那些有興趣

Traceback (most recent call last): 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\flask\app.py", line 1836, in __call__ 
    return self.wsgi_app(environ, start_response) 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\flask\app.py", line 1820, in wsgi_app 
    response = self.make_response(self.handle_exception(e)) 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\flask\app.py", line 1403, in handle_exc 
    reraise(exc_type, exc_value, tb) 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\flask\_compat.py", line 33, in reraise 
    raise value 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\flask\app.py", line 1817, in wsgi_app 
    response = self.full_dispatch_request() 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\flask\app.py", line 1477, in full_dispa 
    rv = self.handle_user_exception(e) 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\flask\app.py", line 1381, in handle_use 
    reraise(exc_type, exc_value, tb) 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\flask\_compat.py", line 33, in reraise 
    raise value 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\flask\app.py", line 1475, in full_dispa 
    rv = self.dispatch_request() 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\flask\app.py", line 1461, in dispatch_r 
    return self.view_functions[rule.endpoint](**req.view_args) 
    File "B:\Sites\GistClone\app.py", line 21, in index 
    description=form.description.data) 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\peewee.py", line 4494, in create 
    inst.save(force_insert=True) 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\peewee.py", line 4680, in save 
    pk_from_cursor = self.insert(**field_dict).execute() 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\peewee.py", line 3213, in execute 
    cursor = self._execute() 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\peewee.py", line 2628, in _execute 
    return self.database.execute_sql(sql, params, self.require_commit) 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\peewee.py", line 3461, in execute_sql 
    self.commit() 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\peewee.py", line 3285, in __exit__ 
    reraise(new_type, new_type(*exc_args), traceback) 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\peewee.py", line 127, in reraise 
    raise value.with_traceback(tb) 
    File "C:\Users\Max\AppData\Local\Programs\Python\Python35-32\lib\site-packages\peewee.py", line 3454, in execute_sql 
    cursor.execute(sql, params or()) 
peewee.OperationalError: table gist has no column named name 
+1

請同時發佈stacktrace。 –

+0

完成。 @ Jean-FrançoisFabre – MaxCodes

+0

您是否已將名稱列添加到代碼中,但忘記遷移實際的數據庫模式? – davidism

回答

0

我得到了同樣的錯誤,並通過刪除數據庫.db文件(在你的情況「gist.db」)固定它。

如果在創建數據庫文件後,您修改或添加了任何模型字段,則peewee不會識別原始數據庫中修改的和/或新的字段,並引發此錯誤。刪除舊的.db文件後,將會在啓動時重新創建包含最新字段的新文件,併爲我解決問題。