почему появляется ошибка 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

Ответы (0 шт):