SQLAlchemy, MySQL и python - как мне обращаться с логическим значением?
У меня есть приложение Pyramid, которое я использую с SQLAlchemy и MySQL. Для полей базы данных, которые я хотел бы считать логическими, я использовал тип данных "BIT" на стороне SQLAlchemy и BIT(1) на стороне MySQL.
Все это работало нормально, но я проверял какой-то недавно обновленный код на своем веб-хосте, и их версия phpMyAdmin новее, чем та, которую я использую локально; Я просматривал таблицу с полем BIT, и на более новом phpMyAdmin эти данные не отображаются - они просто пустые. В моем локальном экземпляре BIT-поля отображаются как 0 или 1. Если я попытаюсь встроить в себя редактирование размещенного phpMyAdmin, оно не будет принимать никаких значений, которые я пробовал. Я попробовал свой код приложения, и он, кажется, мог переключать значения true/false просто отлично.
Меня удивило - с этой настройкой я должен подходить к этому по-другому? SQLAlchemy поддерживает Boolean, который выглядит более интуитивно понятным и уместным. Стоит ли мне использовать это и установить вместо полей MySQL значение TINYINT?
Каков общепринятый способ обработки логических значений между SQLAlchemy и MySQL?
1 ответ
MySQL имеет BOOL
тип (который использует SQLAlchemy), поэтому я не уверен, почему вы не используете это? Видимо это псевдоним для TINYINT
,
from sqlalchemy import Boolean
и тебе должно быть хорошо идти.