You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by ab...@apache.org on 2023/09/27 10:46:02 UTC

[incubator-devlake] branch fix#6150 updated: fix: add db transactions

This is an automated email from the ASF dual-hosted git repository.

abeizn pushed a commit to branch fix#6150
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git


The following commit(s) were added to refs/heads/fix#6150 by this push:
     new 8a8dd894a fix: add db transactions
8a8dd894a is described below

commit 8a8dd894a2014b58ececc685fcf963b0ef558efb
Author: abeizn <zi...@merico.dev>
AuthorDate: Wed Sep 27 18:45:31 2023 +0800

    fix: add db transactions
---
 .../20230927_modify_file_metrics_key_length.go        | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/backend/plugins/sonarqube/models/migrationscripts/20230927_modify_file_metrics_key_length.go b/backend/plugins/sonarqube/models/migrationscripts/20230927_modify_file_metrics_key_length.go
index 5a60f4945..66c1a5dd6 100644
--- a/backend/plugins/sonarqube/models/migrationscripts/20230927_modify_file_metrics_key_length.go
+++ b/backend/plugins/sonarqube/models/migrationscripts/20230927_modify_file_metrics_key_length.go
@@ -39,6 +39,7 @@ func (fileMetricsKey20230927) TableName() string {
 
 func (script *modifyFileMetricsKeyLength) Up(basicRes context.BasicRes) errors.Error {
 	db := basicRes.GetDal()
+	tx := db.Begin()
 	err := migrationhelper.ChangeColumnsType[fileMetricsKey20230927](
 		basicRes,
 		script,
@@ -54,14 +55,26 @@ func (script *modifyFileMetricsKeyLength) Up(basicRes context.BasicRes) errors.E
 		},
 	)
 	if err != nil {
+		tx.Rollback()
 		return err
 	}
-	err = db.Exec("ALTER TABLE _tool_sonarqube_file_metrics DROP PRIMARY KEY;")
-	if err != nil {
+
+	if err = tx.Exec("ALTER TABLE _tool_sonarqube_file_metrics DROP PRIMARY KEY"); err != nil {
+		tx.Rollback()
+		return err
+	}
+
+	if err := tx.Exec("ALTER TABLE _tool_sonarqube_file_metrics ADD PRIMARY KEY (connection_id, file_metrics_key)"); err != nil {
+		tx.Rollback()
+		return err
+	}
+
+	if err := tx.Commit(); err != nil {
+		tx.Rollback()
 		return err
 	}
 
-	return db.Exec("ALTER TABLE _tool_sonarqube_file_metrics ADD PRIMARY KEY (connection_id, file_metrics_key)")
+	return nil
 }
 
 func (*modifyFileMetricsKeyLength) Version() uint64 {