I did look at putting the logic into service_guard but it would mean that the service could be brought up by the main function or restart_on_change and then shutdown again by service_guard which still leaves scope for data to be inserted during the migration. Also it didn't feel like it logically sat in service guard which is why I abandoned that approach and went for upstart service disabling. I like this approach because the services are shutdown straight after install and remain down until the db init has been done which makes sense to me.
I did look at putting the logic into service_guard but it would mean that the service could be brought up by the main function or restart_on_change and then shutdown again by service_guard which still leaves scope for data to be inserted during the migration. Also it didn't feel like it logically sat in service guard which is why I abandoned that approach and went for upstart service disabling. I like this approach because the services are shutdown straight after install and remain down until the db init has been done which makes sense to me.