Saltar al contenido

SQLAlchemy: “crear esquema si no existe”

Por fin luego de mucho trabajar pudimos encontrar el arreglo de esta contrariedad que algunos los usuarios de nuestra web tienen. Si deseas aportar algo no dudes en aportar tu conocimiento.

Solución:

Tuve la misma pregunta y la respuesta, que encontré, es:

if not engine.dialect.has_schema(engine, schema_name):
    engine.execute(sqlalchemy.schema.CreateSchema(schema_name))

También podemos verificar el esquema sin la instancia del motor, pero usando la conexión

conn = engine.connect()
if conn.dialect.has_schema(conn, schema_name):

Para los usuarios de MS Sql, no hay has_schema() pero esto parece funcionar:

if schemaname not in conn.dialect.get_schema_names(conn):
   conn.execute(schema.CreateSchema(schemaname))

Puedes usar el excelente sqlalchemy_utils paquete para hacer precisamente eso, de una manera muy ordenada.

Primero, instale el paquete:

pip install sqlalchemy_utils

Entonces úsalo así:

from sqlalchemy_utils.functions import database_exists, create_database

engin_uri = 'postgres://[email protected]/name'

if not database_exists(engin_uri):
    create_database(engin_uri)

El ejemplo de los documentos oficiales ha usado PostgreSQL y yo personalmente lo he usado en MySQL 8.

Si te animas, eres capaz de dejar una división acerca de qué te ha impresionado de este ensayo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *