当记录的数据类型与列类型冲突时,Sqlalchemy ORM不会引发错误

时间:2017-09-06 05:31:59

标签: python sqlite orm sqlalchemy

sqlalchemy允许我插入除定义的列类型之外的数据。

from sqlalchemy import create_engine
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
import sqlite3

Base = declarative_base()
engine = create_engine("sqlite:///c:\\sample.sqlite")

class Model(Base):
    __tablename__='just_names'
    id = Column(Integer, primary_key=True)
    name = Column(String)

Base.metadata.create_all(engine)
session=sessionmaker(bind=engine)
s= session()

s.add(Model(name='Naruto'))
s.add(Model(name=1)) # here column name should be string, but integer is being allowed without any error.
s.commit()

注意:这里回答了类似的问题。 How can I verify Column data types in the SQLAlchemy ORM? 他们通过导入事件和验证来解决它。

如果记录与相应的列类型冲突,是否还有另一种更短的方法来验证数据并引发错误?

0 个答案:

没有答案