Break up v5 table ALTERs for SQLite

Combining all operations into a single query was causing problems in
SQLite. This fixes that by breaking them up into separate queries. It
also moves one column length change to only run on MySQL, since SQLite
doesn't need it.
pull/275/head
Matt Baer 5 years ago
parent f1ffcf96ec
commit bb5da1d3f5
  1. 32
      migrations/v5.go

@ -20,30 +20,30 @@ 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})),
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})),
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})),
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})),
dialect.
AlterTable("oauth_users").
AddColumn(dialect. AddColumn(dialect.
Column( Column(
"access_token", "access_token",
@ -51,6 +51,18 @@ func oauthSlack(db *datastore) error {
wf_db.OptionalInt{Set: true, Value: 512,})), wf_db.OptionalInt{Set: true, Value: 512,})),
dialect.CreateUniqueIndex("oauth_users", "oauth_users", "user_id", "provider", "client_id"), 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 {

Loading…
Cancel
Save