[MM-36995] Start using db native JSON datatypes (#17930)

* Start using db native JSON datatypes

* Fix syntax to work on MySQL 5.7.12
Этот коммит содержится в:
Claudio Costa
2021-07-28 08:50:36 +02:00
коммит произвёл GitHub
родитель 1c63e6a848
Коммит 1ae1c38c9f
15 изменённых файлов: 84 добавлений и 54 удалений

Просмотреть файл

@@ -911,7 +911,12 @@ func (ss *SqlStore) AlterColumnTypeIfExists(tableName string, columnName string,
if ss.DriverName() == model.DatabaseDriverMysql {
_, err = ss.GetMaster().ExecNoTimeout("ALTER TABLE " + tableName + " MODIFY " + columnName + " " + mySqlColType)
} else if ss.DriverName() == model.DatabaseDriverPostgres {
_, err = ss.GetMaster().ExecNoTimeout("ALTER TABLE " + strings.ToLower(tableName) + " ALTER COLUMN " + strings.ToLower(columnName) + " TYPE " + postgresColType)
query := "ALTER TABLE " + strings.ToLower(tableName) + " ALTER COLUMN " + strings.ToLower(columnName) + " TYPE " + postgresColType
// We need to explicitly cast when moving from text based to jsonb datatypes.
if postgresColType == "jsonb" {
query += " USING " + strings.ToLower(columnName) + "::jsonb"
}
_, err = ss.GetMaster().ExecNoTimeout(query)
}
if err != nil {
@@ -1742,3 +1747,10 @@ func versionString(v int, driver string) string {
}
return ""
}
func (ss *SqlStore) jsonDataType() string {
if ss.DriverName() == model.DatabaseDriverPostgres {
return "jsonb"
}
return "json"
}