Facturasend flyway – Corrección de Migration con delete type

Publicado el 31 de marzo de 2025

facturaSendflywaymigration

Emerson Paixao

En ocasiones, el flyway se desconfigura de los migrations y se ejecutan operaciones de delete en la tabla flyway_history, los cuales deben ser eliminados.

Para ello seguir los siguientes pasos:

Ingresar a docker de Facturasend

docker exec -it facturasend /bin/bash

En la carpeta por defecto, donde entra, ejecutar los scripts SQL:

Obs: La carpeta para ejecutar los scripts es /opt/facturacionelectronicadeploy/server

Schemas de Empresas

psql -h $bd_host -p $bd_port -d $bd_database -U $bd_user -At -c "SELECT schema_name::varchar as databaseListForBackup
                            FROM information_schema.schemata
                            WHERE catalog_name = '$bd_database'
                            AND schema_name NOT LIKE 'pg_%'
                            AND schema_name != 'information_schema' AND schema_name != 'public';" \
    | while read -a Record ; do
    schema=${Record[0]}


    psql -h $bd_host -p $bd_port -d $bd_database -U $bd_user -At -c "SET search_path to ${schema};DELETE FROM flyway_schema_history WHERE type='DELETE'"

    flyway -user=$bd_user -password=$bd_password -url=jdbc:postgresql://$bd_host:$bd_port/$bd_database \
        -locations=filesystem:migrations/client_schema -createSchemas=false -defaultSchema=${schema} -schemas=${schema} repair

    echo " "

    flyway -user=$bd_user -password=$bd_password -url=jdbc:postgresql://$bd_host:$bd_port/$bd_database \
        -locations=filesystem:migrations/client_schema -createSchemas=false -defaultSchema=${schema} -schemas=${schema} migrate

    echo " "
    echo " "
done

Esquema Publico

psql -h $bd_host -p $bd_port -d $bd_database -U $bd_user -At -c "SELECT schema_name::varchar as databaseListForBackup
                   		 FROM information_schema.schemata
                   		 WHERE catalog_name = '$bd_database'
                   		 AND schema_name = 'public';" \
    | while read -a Record ; do
    schema=${Record[0]}


    psql -h $bd_host -p $bd_port -d $bd_database -U $bd_user -At -c "SET search_path to ${schema};DELETE FROM flyway_schema_history WHERE type='DELETE'"

    flyway -user=$bd_user -password=$bd_password -url=jdbc:postgresql://$bd_host:$bd_port/$bd_database -locations=filesystem:migrations/public_schema -createSchemas=false -defaultSchema=public -schemas=public repair


    echo " "

    flyway -user=$bd_user -password=$bd_password -url=jdbc:postgresql://$bd_host:$bd_port/$bd_database -locations=filesystem:migrations/public_schema -createSchemas=false -defaultSchema=public -schemas=public migrate

    echo " "
    echo " "
done

Solicita un presupuesto ahora mismo para facturar electronicamente en tu empresa.

Contactanos →