Encryption: Fix multiple data keys migration (#49848)

* Add migration

* Migrator: Extend support to rename columns

* Fix getting current key

* Fix column name in migration

* Fix deks reencryption

* Fix caching

* Add back separate caches for byName and byPrefix

* Do not concatenate prefix with uid

* Rename DataKey struc fields

* SQLStore: Add deprecation comments for breaking migrations

* Add comment

* Minor corrections

Co-authored-by: Joan López de la Franca Beltran <joanjan14@gmail.com>
This commit is contained in:
Tania
2022-06-04 12:55:49 +02:00
committed by GitHub
co-authored by Joan López de la Franca Beltran
parent 8de4ffe61f
commit 4f8111e24e
9 changed files with 85 additions and 55 deletions
@@ -61,4 +61,16 @@ func addSecretsMigration(mg *migrator.Migrator) {
mg.AddMigration("copy data_keys id column values into name", migrator.NewRawSQLMigration(
fmt.Sprintf("UPDATE %s SET %s = %s", dataKeysV1.Name, "name", "id"),
))
// ------- This is done for backward compatibility with versions > v8.3.x
mg.AddMigration("rename data_keys name column to label", migrator.NewRenameColumnMigration(
dataKeysV1, dataKeysV1.Columns[0], "label",
))
mg.AddMigration("rename data_keys id column back to name", migrator.NewRenameColumnMigration(
dataKeysV1,
&migrator.Column{Name: "id", Type: migrator.DB_NVarchar, Length: 100, IsPrimaryKey: true},
"name",
))
// --------------------
}