aboutsummaryrefslogtreecommitdiff
path: root/server/store/a_store-packr.go
AgeCommit message (Collapse)Author
2020-04-13SimplifyBen Burwell
2018-08-24Update depsNiall Sheridan
2018-08-23Record request reason in the db instead of loggingNiall Sheridan
2018-08-08Misc fixesNiall Sheridan
- Add `fast_finish` to travis config - Specify that Go 1.9 is supported - Additional error checking which was previously missed - Make the migrations test better -
2018-08-08Change the primary key on the issued_certs tableNiall Sheridan
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.
2018-08-07Drop unneeded index idx_revoked_expires_atNiall Sheridan
2018-08-07Add migrations testsNiall Sheridan
2018-08-07Updates to static content generation, docs and examplesNiall Sheridan
Static content generator finds the root of the git repo and executes from there. Packr will scan subdirs for boxes to be packed.
2018-08-07Manage db schema with rubenv/sql-migrateNiall Sheridan
It's currently hard to make changes to the database schema. Use sql-migrate to make incremental changes. Stop hard-coding the database name (the default is still "certs" for backward-compatibility) The `automigrate()` function will automatically run pending migrations. Use a different migration directory per database driver. This carries a cost of duplication, but is easier than creating migrations which will cleanly execute in both SQLite and MySQL. Migrations are shipped using the packr utility.