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

39 lines
956 B
Go
Raw Permalink Normal View History

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