2015-01-13 43 views
1

當我在下面的代碼後運行print CreateTable(question)時出現一個錯誤,這是因爲ARRAY這是一個特定於postgres的東西,所以編譯不正確。我如何獲得它來編譯正確的CREATE腳本?我在哪裏輸入方言相關的編譯信息?如何用sqlalchemy打印CreateTable(表格)

from sqlalchemy import Table, Column, Integer, String, ForeignKey, MetaData 
from sqlalchemy.dialects.postgresql import ARRAY 
from sqlalchemy.schema import CreateTable 

metadata=MetaData() 

user = Table('user', metadata, 
      Column('id', Integer, primary_key=True) 
      ) 

question = Table('question', metadata, 
      Column('id', Integer, primary_key=True), 
      Column('description', String), 
      Column('answers', ARRAY(String)) 
      ) 

回答

1
from sqlalchemy.dialects import postgresql 
print CreateTable(question).compile(dialect=postgresql.dialect()) 

CREATE TABLE question (
id SERIAL NOT NULL, 
description VARCHAR, 
answers VARCHAR[], 
PRIMARY KEY (id) 
)