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 <[email protected]>
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 {