|
|
@ -1,3 +1,13 @@ |
|
|
|
|
|
|
|
/* |
|
|
|
|
|
|
|
* Copyright © 2019-2020 A Bunch Tell LLC. |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* This file is part of WriteFreely. |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* WriteFreely is free software: you can redistribute it and/or modify |
|
|
|
|
|
|
|
* it under the terms of the GNU Affero General Public License, included |
|
|
|
|
|
|
|
* in the LICENSE file in this source code package. |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
package migrations |
|
|
|
package migrations |
|
|
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
import ( |
|
|
@ -20,39 +30,50 @@ func oauthSlack(db *datastore) error { |
|
|
|
Column( |
|
|
|
Column( |
|
|
|
"provider", |
|
|
|
"provider", |
|
|
|
wf_db.ColumnTypeVarChar, |
|
|
|
wf_db.ColumnTypeVarChar, |
|
|
|
wf_db.OptionalInt{Set: true, Value: 24,})). |
|
|
|
wf_db.OptionalInt{Set: true, Value: 24}).SetDefault("")), |
|
|
|
|
|
|
|
dialect. |
|
|
|
|
|
|
|
AlterTable("oauth_client_states"). |
|
|
|
AddColumn(dialect. |
|
|
|
AddColumn(dialect. |
|
|
|
Column( |
|
|
|
Column( |
|
|
|
"client_id", |
|
|
|
"client_id", |
|
|
|
wf_db.ColumnTypeVarChar, |
|
|
|
wf_db.ColumnTypeVarChar, |
|
|
|
wf_db.OptionalInt{Set: true, Value: 128,})), |
|
|
|
wf_db.OptionalInt{Set: true, Value: 128}).SetDefault("")), |
|
|
|
dialect. |
|
|
|
dialect. |
|
|
|
AlterTable("oauth_users"). |
|
|
|
AlterTable("oauth_users"). |
|
|
|
ChangeColumn("remote_user_id", |
|
|
|
|
|
|
|
dialect. |
|
|
|
|
|
|
|
Column( |
|
|
|
|
|
|
|
"remote_user_id", |
|
|
|
|
|
|
|
wf_db.ColumnTypeVarChar, |
|
|
|
|
|
|
|
wf_db.OptionalInt{Set: true, Value: 128,})). |
|
|
|
|
|
|
|
AddColumn(dialect. |
|
|
|
AddColumn(dialect. |
|
|
|
Column( |
|
|
|
Column( |
|
|
|
"provider", |
|
|
|
"provider", |
|
|
|
wf_db.ColumnTypeVarChar, |
|
|
|
wf_db.ColumnTypeVarChar, |
|
|
|
wf_db.OptionalInt{Set: true, Value: 24,})). |
|
|
|
wf_db.OptionalInt{Set: true, Value: 24}).SetDefault("")), |
|
|
|
|
|
|
|
dialect. |
|
|
|
|
|
|
|
AlterTable("oauth_users"). |
|
|
|
AddColumn(dialect. |
|
|
|
AddColumn(dialect. |
|
|
|
Column( |
|
|
|
Column( |
|
|
|
"client_id", |
|
|
|
"client_id", |
|
|
|
wf_db.ColumnTypeVarChar, |
|
|
|
wf_db.ColumnTypeVarChar, |
|
|
|
wf_db.OptionalInt{Set: true, Value: 128,})). |
|
|
|
wf_db.OptionalInt{Set: true, Value: 128}).SetDefault("")), |
|
|
|
|
|
|
|
dialect. |
|
|
|
|
|
|
|
AlterTable("oauth_users"). |
|
|
|
AddColumn(dialect. |
|
|
|
AddColumn(dialect. |
|
|
|
Column( |
|
|
|
Column( |
|
|
|
"access_token", |
|
|
|
"access_token", |
|
|
|
wf_db.ColumnTypeVarChar, |
|
|
|
wf_db.ColumnTypeVarChar, |
|
|
|
wf_db.OptionalInt{Set: true, Value: 512,})), |
|
|
|
wf_db.OptionalInt{Set: true, Value: 512}).SetDefault("")), |
|
|
|
dialect.DropIndex("remote_user_id", "oauth_users"), |
|
|
|
dialect.CreateUniqueIndex("oauth_users_uk", "oauth_users", "user_id", "provider", "client_id"), |
|
|
|
dialect.DropIndex("user_id", "oauth_users"), |
|
|
|
} |
|
|
|
dialect.CreateUniqueIndex("oauth_users", "oauth_users", "user_id", "provider", "client_id"), |
|
|
|
|
|
|
|
|
|
|
|
if dialect != wf_db.DialectSQLite { |
|
|
|
|
|
|
|
// This updates the length of the `remote_user_id` column. It isn't needed for SQLite databases.
|
|
|
|
|
|
|
|
builders = append(builders, dialect. |
|
|
|
|
|
|
|
AlterTable("oauth_users"). |
|
|
|
|
|
|
|
ChangeColumn("remote_user_id", |
|
|
|
|
|
|
|
dialect. |
|
|
|
|
|
|
|
Column( |
|
|
|
|
|
|
|
"remote_user_id", |
|
|
|
|
|
|
|
wf_db.ColumnTypeVarChar, |
|
|
|
|
|
|
|
wf_db.OptionalInt{Set: true, Value: 128}))) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for _, builder := range builders { |
|
|
|
for _, builder := range builders { |
|
|
|
query, err := builder.ToSQL() |
|
|
|
query, err := builder.ToSQL() |
|
|
|
if err != nil { |
|
|
|
if err != nil { |
|
|
|