1
0
mirror of https://github.com/raseels-repos/golang-saas-starter-kit.git synced 2025-07-03 00:58:13 +02:00
Files
2019-08-26 04:48:43 -08:00

39 lines
956 B
Go

package config
import (
"context"
"log"
"geeks-accelerator/oss/saas-starter-kit/internal/schema"
"github.com/jmoiron/sqlx"
"github.com/pkg/errors"
"gitlab.com/geeks-accelerator/oss/devops/pkg/devdeploy"
)
// RunSchemaMigrationsForTargetEnv executes schema migrations for the target environment.
func RunSchemaMigrationsForTargetEnv(log *log.Logger, awsCredentials devdeploy.AwsCredentials, targetEnv Env, isUnittest bool) error {
cfg, err := NewConfig(log, targetEnv, awsCredentials)
if err != nil {
return err
}
infra, err := devdeploy.SetupInfrastructure(log, cfg)
if err != nil {
return err
}
connInfo, err := cfg.GetDBConnInfo(infra)
if err != nil {
return err
}
masterDb, err := sqlx.Open(connInfo.Driver, connInfo.URL())
if err != nil {
return errors.Wrap(err, "Failed to connect to db for schema migration.")
}
defer masterDb.Close()
return schema.Migrate(context.Background(), targetEnv, masterDb, log, false)
}