|
|
@@ -2,6 +2,7 @@ package main
|
|
|
|
|
|
import (
|
|
|
"errors"
|
|
|
+ "fmt"
|
|
|
"log"
|
|
|
|
|
|
"github.com/porter-dev/porter/api/server/shared/config/envloader"
|
|
|
@@ -49,13 +50,22 @@ func main() {
|
|
|
logger.Fatal().Err(err).Msg("failed to drop clusters token cache constraint")
|
|
|
return
|
|
|
}
|
|
|
- if err := db.Exec("alter table aws_assume_role_chains ADD CONSTRAINT IF NOT EXISTS fk_projects FOREIGN KEY(project_id) REFERENCES projects(id);").Error; err != nil {
|
|
|
- logger.Fatal().Err(err).Msg("failed to create fk constraint for assume role chains")
|
|
|
- return
|
|
|
- }
|
|
|
- if err := db.Exec("alter table aws_assume_role_chains ADD IF NOT EXISTS unique (project_id, source_arn, target_arn);").Error; err != nil {
|
|
|
- logger.Fatal().Err(err).Msg("failed to create unique constraint for assume role chains")
|
|
|
- return
|
|
|
+
|
|
|
+ err = db.Transaction(func(tx *pgorm.DB) error {
|
|
|
+ if err := db.Exec("alter table aws_assume_role_chains DROP CONSTRAINT IF EXISTS fk_projects;").Error; err != nil {
|
|
|
+ return fmt.Errorf("failed to drop fk constraint for assume role chains: %w", err)
|
|
|
+ }
|
|
|
+ if err := db.Exec("alter table aws_assume_role_chains ADD CONSTRAINT fk_projects FOREIGN KEY(project_id) REFERENCES projects(id);").Error; err != nil {
|
|
|
+ return fmt.Errorf("failed to create fk constraint for assume role chains: %w", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ if err := db.Exec("alter table aws_assume_role_chains ADD unique (project_id, source_arn, target_arn);").Error; err != nil {
|
|
|
+ return fmt.Errorf("failed to create unique constraint for assume role chains: %w", err)
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ logger.Fatal().Err(err).Msg("error updating cluster control plane tables")
|
|
|
}
|
|
|
|
|
|
tx := db.Begin()
|