cloudfoundry/stratos

View on GitHub
src/jetstream/datastore/20190930092500_LocalUsersTriggerFix.go

Summary

Maintainability
A
0 mins
Test Coverage
package datastore

import (
    "database/sql"
    "strings"

    "bitbucket.org/liamstask/goose/lib/goose"
)

func init() {
    RegisterMigration(20190930092500, "LocalUsersTriggerFix", func(txn *sql.Tx, conf *goose.DBConf) error {

        var dropTrigger string

        if strings.Contains(conf.Driver.Name, "sqlite") {
            //SQLITE
            dropTrigger = "DROP TRIGGER IF EXISTS update_last_updated;"
        }
        if strings.Contains(conf.Driver.Name, "postgres") {
            // POSTGRESQL
            dropTrigger = "DROP TRIGGER IF EXISTS update_trigger ON local_users;"
        } else if strings.Contains(conf.Driver.Name, "mysql") {
            // MYSQL
            dropTrigger = "DROP TRIGGER IF EXISTS update_last_updated;"
            // Ignore error - most likely permission bug issue on Mysql
            txn.Exec(dropTrigger)
            return nil
        }

        if len(dropTrigger) > 0 {
            // Remove the trigger
            _, err := txn.Exec(dropTrigger)
            return err
        }

        return nil
    })
}