From 56806804651c09f67e7d46940b9f25d5aba9ccc2 Mon Sep 17 00:00:00 2001 From: Yuan Gong Date: Fri, 25 Oct 2019 15:17:35 +0800 Subject: [PATCH 1/2] Change pipeline description to longtext; Add migration step to migrate existing field too --- backend/src/apiserver/client_manager.go | 5 +++++ backend/src/apiserver/model/pipeline.go | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/backend/src/apiserver/client_manager.go b/backend/src/apiserver/client_manager.go index 4a81fbf6e78..d565686599e 100644 --- a/backend/src/apiserver/client_manager.go +++ b/backend/src/apiserver/client_manager.go @@ -226,6 +226,11 @@ func initDBClient(initConnectionTimeout time.Duration) *storage.DB { initPipelineVersionsFromPipelines(db) } + response = db.Model(&model.Pipeline{}).ModifyColumn("Description", "longtext") + if response.Error != nil { + glog.Fatalf("Failed to update pipeline description type. Error: %s", response.Error) + } + return storage.NewDB(db.DB(), storage.NewMySQLDialect()) } diff --git a/backend/src/apiserver/model/pipeline.go b/backend/src/apiserver/model/pipeline.go index 5baec4caefc..08100e49ce1 100644 --- a/backend/src/apiserver/model/pipeline.go +++ b/backend/src/apiserver/model/pipeline.go @@ -30,7 +30,7 @@ type Pipeline struct { UUID string `gorm:"column:UUID; not null; primary_key"` CreatedAtInSec int64 `gorm:"column:CreatedAtInSec; not null"` Name string `gorm:"column:Name; not null; unique"` - Description string `gorm:"column:Description; not null"` + Description string `gorm:"column:Description; not null; size:65535"` // Same as below, set size to large number so it will be stored as longtext // TODO(jingzhang36): remove Parameters when no code is accessing this // field. Should use PipelineVersion.Parameters instead. /* Set size to 65535 so it will be stored as longtext. https://dev.mysql.com/doc/refman/8.0/en/column-count-limit.html */ From da5d8c2a01af135b392cc4689c95767a56dfc910 Mon Sep 17 00:00:00 2001 From: Yuan Gong Date: Fri, 25 Oct 2019 16:02:15 +0800 Subject: [PATCH 2/2] Fix description field became nullable issue --- backend/src/apiserver/client_manager.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/apiserver/client_manager.go b/backend/src/apiserver/client_manager.go index d565686599e..8d2765497d3 100644 --- a/backend/src/apiserver/client_manager.go +++ b/backend/src/apiserver/client_manager.go @@ -204,7 +204,7 @@ func initDBClient(initConnectionTimeout time.Duration) *storage.DB { glog.Fatalf("Failed to initialize the databases.") } - response = db.Model(&model.ResourceReference{}).ModifyColumn("Payload", "longtext") + response = db.Model(&model.ResourceReference{}).ModifyColumn("Payload", "longtext not null") if response.Error != nil { glog.Fatalf("Failed to update the resource reference payload type. Error: %s", response.Error) } @@ -226,7 +226,7 @@ func initDBClient(initConnectionTimeout time.Duration) *storage.DB { initPipelineVersionsFromPipelines(db) } - response = db.Model(&model.Pipeline{}).ModifyColumn("Description", "longtext") + response = db.Model(&model.Pipeline{}).ModifyColumn("Description", "longtext not null") if response.Error != nil { glog.Fatalf("Failed to update pipeline description type. Error: %s", response.Error) }