Pony ORM - атрибут сущности необязательный при создании экземпляра, но обязательный при сохранении БД - PullRequest
0 голосов
/ 04 февраля 2020

В Pony ORM атрибут сущности, объявленный как Required(), должен быть указан при создании экземпляра. Если я объявляю его как Optional(), поле базы данных в некоторых случаях становится обнуляемым (целыми числами), что является субоптимальным в сценарии, когда к базе данных обращаются другие приложения. Глядя на код, который я вижу, проверка пропускается, если атрибут auto или volatile, но ни один из этих вариантов не является хорошим выбором - auto описывается как разрешенный только для автоинкрементных первичных ключей, а volatile отбрасывает набор значений и повторно получает это лениво (и делает другие предположения, относящиеся к оптимизации c управления транзакциями).

Есть ли какой-либо способ в Pony установить поле NOT NULL в базе данных, но в противном случае необязательно при создании экземпляра объекта, что-то вроде отложенной проверки?

1 Ответ

0 голосов
/ 05 февраля 2020

В атрибуте вашей сущности вам нужно указать параметр 'nullable = True', это заставит поле принимать не нулевые значения. Пример:

    x = Optional(str, nullable=True)

Надеюсь, это поможет

...