Skip to content

Commit

Permalink
Add crypto store upgrade for converting VARCHAR(255) to TEXT
Browse files Browse the repository at this point in the history
  • Loading branch information
tulir committed Aug 19, 2021
1 parent d98d1a8 commit 53be7e7
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions crypto/sql_store_upgrade/upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,49 @@ var Upgrades = [...]upgradeFunc{
}
return nil
},
func(tx *sql.Tx, dialect string) error {
if dialect == "sqlite3" {
// SQLite doesn't enforce varchar sizes anyway
return nil
}
alters := [...]string{
`ALTER TABLE crypto_account ALTER COLUMN device_id TYPE TEXT`,
`ALTER TABLE crypto_account ALTER COLUMN account_id TYPE TEXT`,

`ALTER TABLE crypto_device ALTER COLUMN user_id TYPE TEXT`,
`ALTER TABLE crypto_device ALTER COLUMN device_id TYPE TEXT`,
`ALTER TABLE crypto_device ALTER COLUMN name TYPE TEXT`,

`ALTER TABLE crypto_megolm_inbound_session ALTER COLUMN room_id TYPE TEXT`,
`ALTER TABLE crypto_megolm_inbound_session ALTER COLUMN account_id TYPE TEXT`,
`ALTER TABLE crypto_megolm_inbound_session ALTER COLUMN withheld_code TYPE TEXT`,

`ALTER TABLE crypto_megolm_outbound_session ALTER COLUMN room_id TYPE TEXT`,
`ALTER TABLE crypto_megolm_outbound_session ALTER COLUMN account_id TYPE TEXT`,

`ALTER TABLE crypto_message_index ALTER COLUMN event_id TYPE TEXT`,

`ALTER TABLE crypto_olm_session ALTER COLUMN account_id TYPE TEXT`,

`ALTER TABLE crypto_tracked_user ALTER COLUMN user_id TYPE TEXT`,

`ALTER TABLE crypto_cross_signing_keys ALTER COLUMN user_id TYPE TEXT`,
`ALTER TABLE crypto_cross_signing_keys ALTER COLUMN usage TYPE TEXT`,

`ALTER TABLE crypto_cross_signing_signatures ALTER COLUMN signed_user_id TYPE TEXT`,
`ALTER TABLE crypto_cross_signing_signatures ALTER COLUMN signed_key TYPE TEXT`,
`ALTER TABLE crypto_cross_signing_signatures ALTER COLUMN signer_user_id TYPE TEXT`,
`ALTER TABLE crypto_cross_signing_signatures ALTER COLUMN signer_key TYPE TEXT`,
`ALTER TABLE crypto_cross_signing_signatures ALTER COLUMN signature TYPE TEXT`,
}
for _, alter := range alters {
_, err := tx.Exec(alter)
if err != nil {
return err
}
}
return nil
},
}

// GetVersion returns the current version of the DB schema.
Expand Down

0 comments on commit 53be7e7

Please sign in to comment.