aboutsummaryrefslogtreecommitdiffstats
path: root/models/migrations/v41.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/migrations/v41.go')
-rw-r--r--models/migrations/v41.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/models/migrations/v41.go b/models/migrations/v41.go
new file mode 100644
index 0000000000..89763c3afe
--- /dev/null
+++ b/models/migrations/v41.go
@@ -0,0 +1,42 @@
+// Copyright 2017 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package migrations
+
+import (
+ "fmt"
+
+ "code.gitea.io/gitea/models"
+
+ "github.com/go-xorm/xorm"
+)
+
+func addDefaultValueToUserProhibitLogin(x *xorm.Engine) (err error) {
+ user := &models.User{
+ ProhibitLogin: false,
+ }
+
+ if _, err := x.Where("`prohibit_login` IS NULL").Cols("prohibit_login").Update(user); err != nil {
+ return err
+ }
+
+ dialect := x.Dialect().DriverName()
+
+ switch dialect {
+ case "mysql":
+ _, err = x.Exec("ALTER TABLE user MODIFY `prohibit_login` tinyint(1) NOT NULL DEFAULT 0")
+ case "postgres":
+ _, err = x.Exec("ALTER TABLE \"user\" ALTER COLUMN `prohibit_login` SET NOT NULL, ALTER COLUMN `prohibit_login` SET DEFAULT false")
+ case "mssql":
+ // xorm already set DEFAULT 0 for data type BIT in mssql
+ _, err = x.Exec(`ALTER TABLE [user] ALTER COLUMN "prohibit_login" BIT NOT NULL`)
+ case "sqlite3":
+ }
+
+ if err != nil {
+ return fmt.Errorf("Error changing user prohibit_login column definition: %v", err)
+ }
+
+ return err
+}