-
- Downloads
Change the primary key on the issued_certs table
In retrospect a primary key that has no relation to the certificate is preferred to using the certificate KeyID. The KeyID is also very large for a primary index. This is a moderately tricky migration, especially for SQLite which has no means of altering the table in this fashion - it involves creating the new table and copying the data. Order of commands also matters - index names are global in SQLite, so the `idx_expires_at` index needs to be created at the correct stages. For MySQL migration the necessary steps are run as a single alter statement to minimise the risk of leaving the migration in an incomplete state if anything aborts. When tested on a table with 250,000 rows (MySQL 5.7) the migration took 3 seconds to complete. As certificates will be requested infrequently the risk of prolonged locking is minimal.
Showing
- server/store/a_store-packr.go 3 additions, 1 deletionserver/store/a_store-packr.go
- server/store/migrations/migrations_test.go 1 addition, 0 deletionsserver/store/migrations/migrations_test.go
- server/store/migrations/mysql/20180807224200_new_primary_key.sql 11 additions, 0 deletions...store/migrations/mysql/20180807224200_new_primary_key.sql
- server/store/migrations/sqlite3/20180807224200_new_primary_key.sql 32 additions, 0 deletions...ore/migrations/sqlite3/20180807224200_new_primary_key.sql
- server/store/store.go 1 addition, 0 deletionsserver/store/store.go
Loading
Please register or sign in to comment