It is fantastic how close OttoFMS and OttoDeploy get us to fully automated deployments.
One of the manual pieces that remains is reviewing (and taking action on) the DMT log.
The “detailed log” of a deployment shows the DMT summary, along with the relevant portions from the DMT log. For example:
== Mapping fields in source table “Test” to target table “Test” ==
Matching source field “NameMismatch” and target field “TextField8” by internal id
No compatible target found for source field “NoMatchingFieldInDEV”
No compatible source found for target field “NoMatchingFieldInPROD”
– Record mode migration for source table “Test” –
– Updated the following stored calculations –
Target field “CalcFieldWithEvaluationError_c” and its dependents
Failed while evaluating calculation for target field “CalcFieldWithEvaluationError_c” 1 times
== Summary ==
Accounts migrated: 4
Accounts changed: 0
Custom value lists migrated: 0
Font entries added: 0
Tables migrated: 1
Tables not migrated: 0
Fields migrated: 14
Fields not migrated: 1
Fields triggering recalculations: 1
Fields with evaluation errors: 1
Fields with fewer repetitions: 0
Serial numbers updated: 0
I love how only the relevant pieces are shown.
There are a couple of situations where a human needs to review the log and investigate the cause. For example: if a field wasn’t matched by both name and id, or if a field or table wasn’t migrated, or if there were evaluation errors.
A lot of the time, these are false positives, but sometimes it’s because something was overlooked during development or when preparing for the deployment.
For example, as part of a hotfix, someone added a field in PROD but neglected to do the same in DEV. Meanwhile, a different field was added in DEV in the same table. Those fields have the same id, but we don’t want those fields to be matched during migration.
I’m not sure what the best way to handle these situations would be. Here are some ideas:
If the DMT summary indicates possible errors:
- Could we have OttoFMS notify us via email and/or text?
- Could we have a checkbox when preparing a deployment to automatically roll back?