2014-11-29 2 views
5

Я пытаюсь сохранить байтовые строки в базе данных PostgreSQL с помощью SQLAlchemy.Какой тип используется для хранения строк байтов в SQLAlchemy?

Моя модель выглядит следующим образом:

class UserAccount(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    username = db.Column(db.String) 
    password_hash = db.Column(db.String) 
    password_salt = db.Column(db.String) 

Я хочу password_hash и password_salt в оба строк байт (т.е. строки, так как я использую Python 2.7), но даже если я прохожу байты в него, SQLAlchemy похоже, превращает их в юникод. Я также попытался использовать convert_unicode=False в модели, но я получаю тот же результат.

Что я могу использовать для хранения байтов в модели SQLAlchemy?

ответ

8

Используйте тип LargeBinary, который будет использовать тип bytea на PostgreSQL. Вы также можете использовать тип BYTEA, если вы собираетесь использовать PostgreSQL.

+0

Или я предполагаю что-нибудь еще, что наследуется от 'sqlalchemy.types._Binary', например [' BINARY'] (http://docs.sqlalchemy.org/en/latest/core/type_basics.html#sqlalchemy.types .BINARY) и ['VARBINARY'] (http://docs.sqlalchemy.org/en/latest/core/type_basics.html#sqlalchemy.types.VARBINARY). –

Смежные вопросы