How to check if PostgreSQL schema exists using SQLAlchemy?

后端 未结 4 1251
爱一瞬间的悲伤
爱一瞬间的悲伤 2021-01-12 15:07

I am using SQLAlchemy to generate tables in a specific schema in a PostgreSQL database. If the schema does not exist, I want to create it. I know the PostgreSQL query to che

4条回答
  •  执笔经年
    2021-01-12 15:46

    This worked for me. Finds if a schema exists using pure SqlAlchemy:

    from sqlalchemy import create_engine
    from sqlalchemy import event
    from sqlalchemy.schema import CreateSchema, DropSchema
    ...
    engine = create_engine(dbstr)
    meta = ModelBase()
    ...
    if not engine.dialect.has_schema(engine, schema=schema_name):
        event.listen(meta.metadata, 'before_create', CreateSchema(schema_name))
    
    meta.metadata.reflect(bind=engine, schema=schema_name)
    meta.metadata.create_all(engine, checkfirst=True)
    

提交回复
热议问题