2017-03-01 33 views
2

应用引擎标准只支持python 2和库必须是纯Python,所以我连接到一个Postgres实例使用SQLAlchemy和pg8000(纯python而不是psycopg2不是)。该连接没有任何麻烦发,但是当插入尝试我碰到下面的错误,我不完全理解:PostgreSQL在应用引擎标准 - 插入错误

的代码
<type 'memoryview'> has type <type 'memoryview'>, but expected one of: str, unicode 

片段导致出现此问题:

event = self.generate_view(body) 
self.write_event(event, ViewEvent) 

def write_event(self, event, event_model): 
    session = Session() 
    success = False 
    try: 
     new_event = event_model(**event) 
     session.add(new_event) 
     session.commit() 
     logging.info('Generated event {}'.format(event)) 
     success = True 
    except Exception, e: 
     session.rollback() 
     logging.debug('Error inserting event {}'.format(event)) 
     logging.debug('Error was {}'.format(e)) 
    finally: 
     session.close() 
    return success 

任何帮助将不胜感激 - 或者,如果您已经成功地将Postgres连接到App Engine Standard,我可以使用任何替代解决方案,而不仅仅是使用pg8000。

回答

0

可能需要将ssl=True添加到您的db连接。

pg8000.connect(ssl=True, **config) 

或者在SQLAlchemy中:

create_engine('postgresql+pg8000://user:[email protected]/dbname', connect_args={'ssl': True}, echo=True)