From f91ee5d23a7531fbd32eecfce753cbba4fedfa29 Mon Sep 17 00:00:00 2001 From: qwerty287 <80460567+qwerty287@users.noreply.github.com> Date: Wed, 31 May 2023 21:27:57 +0200 Subject: [PATCH] Remove MSSQL specific code and cleanups (#1796) We don't have MSSQL support --------- Co-authored-by: Anbraten --- server/store/datastore/engine_test.go | 2 +- .../datastore/migration/000_legacy_to_xorm.go | 4 +- .../datastore/migration/006_log_data_type.go | 2 - .../migration/007_secrets_add_user.go | 2 +- .../migration/008_recreate_agents_table.go | 4 +- .../migration/012_rename_remote_to_forge.go | 2 +- server/store/datastore/migration/common.go | 45 ------------------- server/store/datastore/migration/migration.go | 8 ++-- 8 files changed, 11 insertions(+), 58 deletions(-) diff --git a/server/store/datastore/engine_test.go b/server/store/datastore/engine_test.go index 93790282e..3f595c93e 100644 --- a/server/store/datastore/engine_test.go +++ b/server/store/datastore/engine_test.go @@ -46,7 +46,7 @@ func newTestStore(t *testing.T, tables ...interface{}) (*storage, func()) { } for _, table := range tables { - if err := engine.Sync2(table); err != nil { + if err := engine.Sync(table); err != nil { t.Error(err) t.FailNow() } diff --git a/server/store/datastore/migration/000_legacy_to_xorm.go b/server/store/datastore/migration/000_legacy_to_xorm.go index 5de5f5b5e..a56bde1cd 100644 --- a/server/store/datastore/migration/000_legacy_to_xorm.go +++ b/server/store/datastore/migration/000_legacy_to_xorm.go @@ -86,13 +86,13 @@ var legacy2Xorm = task{ { // recreate build_config type BuildConfig struct { - ConfigID int64 `xorm:"NOT NULL 'config_id'"` // xorm.Sync2() do not use index info of sess -> so it try to create it twice + ConfigID int64 `xorm:"NOT NULL 'config_id'"` // xorm.Sync() do not use index info of sess -> so it tries to create it twice BuildID int64 `xorm:"NOT NULL 'build_id'"` } if err := renameTable(sess, "build_config", "old_build_config"); err != nil { return err } - if err := sess.Sync2(new(BuildConfig)); err != nil { + if err := sess.Sync(new(BuildConfig)); err != nil { return err } if _, err := sess.Exec("INSERT INTO build_config (config_id, build_id) SELECT config_id,build_id FROM old_build_config;"); err != nil { diff --git a/server/store/datastore/migration/006_log_data_type.go b/server/store/datastore/migration/006_log_data_type.go index 0291edae5..da261febd 100644 --- a/server/store/datastore/migration/006_log_data_type.go +++ b/server/store/datastore/migration/006_log_data_type.go @@ -15,8 +15,6 @@ var alterTableLogUpdateColumnLogDataType = task{ _, err = sess.Exec("ALTER TABLE logs ALTER COLUMN log_data TYPE BYTEA") case schemas.MYSQL: _, err = sess.Exec("ALTER TABLE logs MODIFY COLUMN log_data LONGBLOB") - case schemas.MSSQL: - _, err = sess.Exec("ALTER TABLE logs MODIFY COLUMN log_data VARBINARY") default: // sqlite does only know BLOB in all cases return nil diff --git a/server/store/datastore/migration/007_secrets_add_user.go b/server/store/datastore/migration/007_secrets_add_user.go index 46eaaa778..4c1f91ee2 100644 --- a/server/store/datastore/migration/007_secrets_add_user.go +++ b/server/store/datastore/migration/007_secrets_add_user.go @@ -32,7 +32,7 @@ func (SecretV007) TableName() string { var alterTableSecretsAddUserCol = task{ name: "alter-table-add-secrets-user-id", fn: func(sess *xorm.Session) error { - if err := sess.Sync2(new(SecretV007)); err != nil { + if err := sess.Sync(new(SecretV007)); err != nil { return err } if err := alterColumnDefault(sess, "secrets", "secret_repo_id", "0"); err != nil { diff --git a/server/store/datastore/migration/008_recreate_agents_table.go b/server/store/datastore/migration/008_recreate_agents_table.go index 5cbbc6463..372867814 100644 --- a/server/store/datastore/migration/008_recreate_agents_table.go +++ b/server/store/datastore/migration/008_recreate_agents_table.go @@ -23,9 +23,9 @@ import ( var recreateAgentsTable = task{ name: "recreate-agents-table", fn: func(sess *xorm.Session) error { - if err := dropTable(sess, "agents"); err != nil { + if err := sess.DropTable("agents"); err != nil { return err } - return sess.Sync2(new(model.Agent)) + return sess.Sync(new(model.Agent)) }, } diff --git a/server/store/datastore/migration/012_rename_remote_to_forge.go b/server/store/datastore/migration/012_rename_remote_to_forge.go index a5b29ee80..ddcc43ca0 100644 --- a/server/store/datastore/migration/012_rename_remote_to_forge.go +++ b/server/store/datastore/migration/012_rename_remote_to_forge.go @@ -36,7 +36,7 @@ var renameRemoteToForge = task{ } // make sure the column exist before rename it - if err := sess.Sync2(new(oldRepo012)); err != nil { + if err := sess.Sync(new(oldRepo012)); err != nil { return err } diff --git a/server/store/datastore/migration/common.go b/server/store/datastore/migration/common.go index ab1d48cea..c0d0df2f0 100644 --- a/server/store/datastore/migration/common.go +++ b/server/store/datastore/migration/common.go @@ -23,17 +23,6 @@ import ( "xorm.io/xorm/schemas" ) -func dropTable(sess *xorm.Session, table string) error { - dialect := sess.Engine().Dialect().URI().DBType - switch dialect { - case schemas.MYSQL, schemas.POSTGRES, schemas.SQLITE: - _, err := sess.Exec(fmt.Sprintf("DROP TABLE `%s`;", table)) - return err - default: - return fmt.Errorf("dialect '%s' not supported", dialect) - } -} - func renameTable(sess *xorm.Session, old, new string) error { dialect := sess.Engine().Dialect().URI().DBType switch dialect { @@ -182,40 +171,6 @@ func dropTableColumns(sess *xorm.Session, tableName string, columnNames ...strin if _, err := sess.Exec(fmt.Sprintf("ALTER TABLE `%s` %s", tableName, cols)); err != nil { return fmt.Errorf("drop table `%s` columns %v: %w", tableName, columnNames, err) } - case schemas.MSSQL: - cols := "" - for _, col := range columnNames { - if cols != "" { - cols += ", " - } - cols += "`" + strings.ToLower(col) + "`" - } - sql := fmt.Sprintf("SELECT Name FROM sys.default_constraints WHERE parent_object_id = OBJECT_ID('%[1]s') AND parent_column_id IN (SELECT column_id FROM sys.columns WHERE LOWER(name) IN (%[2]s) AND object_id = OBJECT_ID('%[1]s'))", - tableName, strings.ReplaceAll(cols, "`", "'")) - constraints := make([]string, 0) - if err := sess.SQL(sql).Find(&constraints); err != nil { - return fmt.Errorf("find constraints: %w", err) - } - for _, constraint := range constraints { - if _, err := sess.Exec(fmt.Sprintf("ALTER TABLE `%s` DROP CONSTRAINT `%s`", tableName, constraint)); err != nil { - return fmt.Errorf("drop table `%s` default constraint `%s`: %w", tableName, constraint, err) - } - } - sql = fmt.Sprintf("SELECT DISTINCT Name FROM sys.indexes INNER JOIN sys.index_columns ON indexes.index_id = index_columns.index_id AND indexes.object_id = index_columns.object_id WHERE indexes.object_id = OBJECT_ID('%[1]s') AND index_columns.column_id IN (SELECT column_id FROM sys.columns WHERE LOWER(name) IN (%[2]s) AND object_id = OBJECT_ID('%[1]s'))", - tableName, strings.ReplaceAll(cols, "`", "'")) - constraints = make([]string, 0) - if err := sess.SQL(sql).Find(&constraints); err != nil { - return fmt.Errorf("find constraints: %w", err) - } - for _, constraint := range constraints { - if _, err := sess.Exec(fmt.Sprintf("DROP INDEX `%s` ON `%s`", constraint, tableName)); err != nil { - return fmt.Errorf("drop index `%s` on `%s`: %w", constraint, tableName, err) - } - } - - if _, err := sess.Exec(fmt.Sprintf("ALTER TABLE `%s` DROP COLUMN %s", tableName, cols)); err != nil { - return fmt.Errorf("drop table `%s` columns %v: %w", tableName, columnNames, err) - } default: return fmt.Errorf("dialect '%s' not supported", dialect) } diff --git a/server/store/datastore/migration/migration.go b/server/store/datastore/migration/migration.go index f2676811a..956abda08 100644 --- a/server/store/datastore/migration/migration.go +++ b/server/store/datastore/migration/migration.go @@ -92,7 +92,7 @@ func initNew(sess *xorm.Session) error { } func Migrate(e *xorm.Engine) error { - if err := e.Sync2(new(migrations)); err != nil { + if err := e.Sync(new(migrations)); err != nil { return err } @@ -171,13 +171,13 @@ func runTasks(sess *xorm.Session, tasks []*task) error { } type syncEngine interface { - Sync2(beans ...interface{}) error + Sync(beans ...interface{}) error } func syncAll(sess syncEngine) error { for _, bean := range allBeans { - if err := sess.Sync2(bean); err != nil { - return fmt.Errorf("sync2 error '%s': %w", reflect.TypeOf(bean), err) + if err := sess.Sync(bean); err != nil { + return fmt.Errorf("Sync error '%s': %w", reflect.TypeOf(bean), err) } } return nil