You've already forked golang-saas-starter-kit
mirror of
https://github.com/raseels-repos/golang-saas-starter-kit.git
synced 2025-07-03 00:58:13 +02:00
39 lines
956 B
Go
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)
|
|
}
|