Я пишу приложение Flask с использованием SqlAlchemy и PostgreSQL. Когда я пытаюсь ввести значение в поле перечисления, содержащее более шести символов, я получаю следующую ошибку: sqlalchemy.exc.DataError: (psycopg2.errors.StringDataRightTruncation) значение слишком длинное для изменения типа символа (6)
Я предполагаю, что мне нужно изменить длину строки поля ENUM. Кто-нибудь знает, как это сделать?
Вот моя модель. Соответствующий столбец — роль.
class User(db.Model, UserMixin): #Parent table to profile
ROLE = OrderedDict([
('admin', 'Admin'),
('carrier', 'Carrier'),
('driver', 'Driver'),
('dispatcher', 'Dispatcher'),
('super', 'Super'),
])
id = db.Column(db.Integer, primary_key = True)
user = db.relationship('Profile', backref='User', passive_deletes=True)
percentage = db.relationship('Percentage', backref='User', passive_deletes=True)
company_id = db.Column(db.Integer)
role = db.Column(db.Enum(*ROLE, name='role_types', native_enum=False),
index=True, nullable=False, server_default='admin')
active = db.Column('is_active', db.Boolean(), nullable=False,
server_default='1')
username = db.Column(db.String(24), unique=True, index=True)
firstname = db.Column(db.String(50), nullable=False)
lastname = db.Column(db.String(50), index=True,nullable=False)
email = db.Column(db.String(255), unique=True, index=True, nullable=False,
server_default='')
password = db.Column(db.String(256), nullable=False, server_default='')
Подробнее здесь: https://stackoverflow.com/questions/738 ... postgresql