Есть ли цель установки nullable в классе модели sqlalchemy для таблицы, которая уже существует? - PullRequest
0 голосов
/ 18 декабря 2018

Я создаю класс модели sqlalchemy для таблицы, которая уже существует.Я создаю что-то вроде этого:

from sqlalchemy import Column
from sqlalchemy.dialects.mysql import INTEGER
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Foo(Base):
    __tablename__ = 'some_table'
    id = Column(INTEGER, primary_key=True)
    some_col = Column(INTEGER(display_width=11, unsigned=True), nullable=False, default=0)

Однако я могу создать все эти объекты:

neg_foo = Foo(some_col=-5)
null_foo = Foo(some_col=None)

без каких-либо ошибок.Я ожидал, что есть проверка при создании объекта для способа, которым была разработана модель.Я не верю, что это не так, поскольку документы sqlalchemy говорят:

nullable - если установлено значение по умолчанию True, указывает, что столбец будет отображаться как разрешающий NULL, иначе он будет отображаться какНЕНУЛЕВОЙ.Этот параметр используется только при выдаче операторов CREATE TABLE.

Так есть ли какая-то польза от объявления разных вещей, таких как display_width, unsigned, nullable и т. Д., При создании класса длятаблица, которая уже существует?Или есть ли способ проверить эти вещи для экземпляров объектов этих классов моделей?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...