2016-05-11 3 views
0

Я хочу использовать sqlalchemy ORM (в настоящее время версия 1.0.12) для сохранения фотографий в базе данных Postgres. Мой код Python выглядит следующим образом:sqlalchemy: двоичный столбец не создан?

from sqlalchemy import create_engine 
from sqlalchemy.ext.declarative import declarative_base 
from sqlalchemy import Column, Integer, String, Binary 
from sqlalchemy.orm import sessionmaker 

engine = create_engine('postgresql://127.0.0.1:54321/warehouse', echo=True) 
Session = sessionmaker(bind=engine) 

Base = declarative_base() 

class Picture(Base): 

    __tablename__ = 'pictures' 

    picture_id = Column(Integer(), primary_key=True) 
    data = Binary() 
    filename = Column(String()) 

Base.metadata.drop_all(engine) 
Base.metadata.create_all(engine) 

Моя проблема заключается в том, что двоичный столбец data не создан, который можно увидеть с psql или в журнале предыдущего сценария:

2016-05-11 13:07:12,881 INFO sqlalchemy.engine.base.Engine CREATE TABLE pictures (
     picture_id SERIAL NOT NULL, 
     filename VARCHAR, 
     PRIMARY KEY (picture_id)) 

ли я скучаю что нибудь ?

ответ

1

Да, вы что-то пропустили: звонок Column(...).

Попробуйте

class Picture(Base): 

    __tablename__ = 'pictures' 

    picture_id = Column(Integer(), primary_key=True) 
    data = Column(Binary()) # <--- 
    filename = Column(String()) 

вместо этого.

+0

Это было глупо, мне нужен кофе. – rocksportrocker

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