You got me there! Updating the FAQ on it would fix the issue for others.
For reference:
##########################
from sqlalchemy import *
from sqlalchemy.schema import DDL
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Data(Base):
__tablename__ = 'data'
f1 = Column(Integer, nullable=False, primary_key=True)
f2 = Column(Integer, nullable=False, primary_key=True)
DDL(r''' ''', on="postgres").execute_at('after-create',Data.__table__)
def print_schema_wrong(db):
from StringIO import StringIO
buf = StringIO()
engine = create_engine('%s://' % db, strategy='mock',
executor=lambda s, p='': buf.write(s + p))
#meta = MetaData()
meta = Base.metadata
meta.create_all(engine)
print buf.getvalue()
def print_schema(db):
from StringIO import StringIO
buf = StringIO()
engine = create_engine('%s://' % db, strategy='mock',
executor=lambda s, p='': buf.write(str(s) + p))
#meta = MetaData()
meta = Base.metadata
meta.create_all(engine)
print buf.getvalue()
# fine
print_schema('sqlite')
print_schema('postgres')
print_schema_wrong('sqlite')
# will throw an error
print_schema_wrong('postgres')
######################33