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/10/09 04:39:40 UTC

[incubator-devlake] branch release-v0.19 updated: fix: data too long for column file_metrics_key in postgres (#6196) (#6197)

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

abeizn pushed a commit to branch release-v0.19
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git


The following commit(s) were added to refs/heads/release-v0.19 by this push:
     new 186f8f9b0 fix: data too long for column file_metrics_key in postgres (#6196) (#6197)
186f8f9b0 is described below

commit 186f8f9b0dc24eb49b798636541d9938474902a5
Author: github-actions[bot] <41...@users.noreply.github.com>
AuthorDate: Sun Oct 8 23:39:33 2023 -0500

    fix: data too long for column file_metrics_key in postgres (#6196) (#6197)
    
    Co-authored-by: abeizn <zi...@merico.dev>
---
 .../20230927_modify_file_metrics_key_length.go     | 36 ++++++++++++++--------
 1 file changed, 23 insertions(+), 13 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 bd62e7cf3..e43aae7cc 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
@@ -18,6 +18,8 @@ limitations under the License.
 package migrationscripts
 
 import (
+	"net/url"
+
 	"github.com/apache/incubator-devlake/core/context"
 	"github.com/apache/incubator-devlake/core/dal"
 	"github.com/apache/incubator-devlake/core/errors"
@@ -39,7 +41,24 @@ func (fileMetricsKey20230927) TableName() string {
 
 func (script *modifyFileMetricsKeyLength) Up(basicRes context.BasicRes) errors.Error {
 	db := basicRes.GetDal()
-	tx := db.Begin()
+	dbUrl := basicRes.GetConfig("DB_URL")
+	if dbUrl == "" {
+		return errors.BadInput.New("DB_URL is required")
+	}
+	u, err1 := url.Parse(dbUrl)
+	if err1 != nil {
+		return errors.Convert(err1)
+	}
+	if u.Scheme == "mysql" {
+		if err := db.Exec("ALTER TABLE _tool_sonarqube_file_metrics DROP PRIMARY KEY"); err != nil {
+			return err
+		}
+	} else {
+		if err := db.Exec("ALTER TABLE _tool_sonarqube_file_metrics DROP CONSTRAINT _tool_sonarqube_file_metrics_pkey"); err != nil {
+			return err
+		}
+	}
+
 	err := migrationhelper.ChangeColumnsType[fileMetricsKey20230927](
 		basicRes,
 		script,
@@ -55,21 +74,12 @@ func (script *modifyFileMetricsKeyLength) Up(basicRes context.BasicRes) errors.E
 		},
 	)
 	if err != nil {
-		return tx.Rollback()
+		return err
 	}
 
-	if err = tx.Exec("ALTER TABLE _tool_sonarqube_file_metrics DROP PRIMARY KEY"); err != nil {
-		return tx.Rollback()
+	if err := db.Exec("ALTER TABLE _tool_sonarqube_file_metrics ADD PRIMARY KEY (connection_id, file_metrics_key)"); err != nil {
+		return err
 	}
-
-	if err := tx.Exec("ALTER TABLE _tool_sonarqube_file_metrics ADD PRIMARY KEY (connection_id, file_metrics_key)"); err != nil {
-		return tx.Rollback()
-	}
-
-	if err := tx.Commit(); err != nil {
-		return tx.Rollback()
-	}
-
 	return nil
 }