Explorar el Código

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 hace 4 años
padre
commit
bb5da1d3f5
Se han modificado 1 ficheros con 22 adiciones y 10 borrados
  1. +22
    -10
      migrations/v5.go

+ 22
- 10
migrations/v5.go Ver fichero

@@ -20,30 +20,30 @@ func oauthSlack(db *datastore) error {
Column(
"provider",
wf_db.ColumnTypeVarChar,
wf_db.OptionalInt{Set: true, Value: 24,})).
wf_db.OptionalInt{Set: true, Value: 24})),
dialect.
AlterTable("oauth_client_states").
AddColumn(dialect.
Column(
"client_id",
wf_db.ColumnTypeVarChar,
wf_db.OptionalInt{Set: true, Value: 128,})),
wf_db.OptionalInt{Set: true, Value: 128})),
dialect.
AlterTable("oauth_users").
ChangeColumn("remote_user_id",
dialect.
Column(
"remote_user_id",
wf_db.ColumnTypeVarChar,
wf_db.OptionalInt{Set: true, Value: 128,})).
AddColumn(dialect.
Column(
"provider",
wf_db.ColumnTypeVarChar,
wf_db.OptionalInt{Set: true, Value: 24,})).
wf_db.OptionalInt{Set: true, Value: 24})),
dialect.
AlterTable("oauth_users").
AddColumn(dialect.
Column(
"client_id",
wf_db.ColumnTypeVarChar,
wf_db.OptionalInt{Set: true, Value: 128,})).
wf_db.OptionalInt{Set: true, Value: 128})),
dialect.
AlterTable("oauth_users").
AddColumn(dialect.
Column(
"access_token",
@@ -51,6 +51,18 @@ func oauthSlack(db *datastore) error {
wf_db.OptionalInt{Set: true, Value: 512,})),
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 {
query, err := builder.ToSQL()
if err != nil {


Cargando…
Cancelar
Guardar