почему появляется ошибка sqlalchemy.exc.OperationalError?
вот код:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///data.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class datab(db.Model):
id = db.Column(db.Integer, primary_key=True)
id_user = db.Column(db.Integer)
reason = db.Column(db.Text)
date = db.Column(db.DateTime, default=datetime.utcnow)
def __repr__(self):
return '<datab %r>' % self.id
def ban_user(id_us,reason_ban):
article = datab(id_user=id_us, reason=reason_ban)
db.session.add(article)
db.session.commit()
ban_user(44425996, 'тест')
при вызове функции ban_user появляется ошибка:
Traceback (most recent call last):
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-
packages\sqlalchemy\engine\base.py", line 1284, in _execute_context
cursor, statement, parameters, context
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-
packages\sqlalchemy\engine\default.py", line 590, in do_execute
cursor.execute(statement, parameters)
sqlite3.OperationalError: table datab has no column named date
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:/Users/Danila/PycharmProjects/vk_bot/database.py", line 27, in <module>
ban_user(44425996, 'тест')
File "C:/Users/Danila/PycharmProjects/vk_bot/database.py", line 24, in ban_user
db.session.commit()
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\orm\scoping.py", line 163, in do
return getattr(self.registry(), name)(*args, **kwargs)
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\orm\session.py", line 1042, in commit
self.transaction.commit()
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\orm\session.py", line 504, in commit
self._prepare_impl()
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\orm\session.py", line 483, in _prepare_impl
self.session.flush()
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\orm\session.py", line 2523, in flush
self._flush(objects)
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\orm\session.py", line 2664, in _flush
transaction.rollback(_capture_exception=True)
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\util\langhelpers.py", line 69, in __exit__
exc_value, with_traceback=exc_tb,
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\util\compat.py", line 178, in raise_
raise exception
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\orm\session.py", line 2624, in _flush
flush_context.execute()
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\orm\unitofwork.py", line 422, in execute
rec.execute(self)
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\orm\unitofwork.py", line 589, in execute
uow,
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\orm\persistence.py", line 245, in save_obj
insert,
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\orm\persistence.py", line 1136, in _emit_insert_statements
statement, params
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\engine\base.py", line 1020, in execute
return meth(self, multiparams, params)
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\sql\elements.py", line 298, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\engine\base.py", line 1139, in _execute_clauseelement
distilled_params,
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\engine\base.py", line 1324, in _execute_context
e, statement, parameters, cursor, context
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\engine\base.py", line 1518, in _handle_dbapi_exception
sqlalchemy_exception, with_traceback=exc_info[2], from_=e
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\util\compat.py", line 178, in raise_
raise exception
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\engine\base.py", line 1284, in _execute_context
cursor, statement, parameters, context
File "C:\Users\Danila\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\engine\default.py", line 590, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) table datab has no column named date
[SQL: INSERT INTO datab (id_user, reason, date) VALUES (?, ?, ?)]
[parameters: (44425996, 'тест', '2020-05-19 15:10:21.854285')]
(Background on this error at: http://sqlalche.me/e/e3q8)
Process finished with exit code 1