{"action":"created","issue":{"url":"https://api.github.com/repos/SolutionGuidance/psm/issues/798","repository_url":"https://api.github.com/repos/SolutionGuidance/psm","labels_url":"https://api.github.com/repos/SolutionGuidance/psm/issues/798/labels{/name}","comments_url":"https://api.github.com/repos/SolutionGuidance/psm/issues/798/comments","events_url":"https://api.github.com/repos/SolutionGuidance/psm/issues/798/events","html_url":"https://github.com/SolutionGuidance/psm/pull/798","id":318084456,"number":798,"title":"WIP Migrations","user":{"login":"slifty","id":208884,"avatar_url":"https://avatars1.githubusercontent.com/u/208884?v=4","gravatar_id":"","url":"https://api.github.com/users/slifty","html_url":"https://github.com/slifty","followers_url":"https://api.github.com/users/slifty/followers","following_url":"https://api.github.com/users/slifty/following{/other_user}","gists_url":"https://api.github.com/users/slifty/gists{/gist_id}","starred_url":"https://api.github.com/users/slifty/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slifty/subscriptions","organizations_url":"https://api.github.com/users/slifty/orgs","repos_url":"https://api.github.com/users/slifty/repos","events_url":"https://api.github.com/users/slifty/events{/privacy}","received_events_url":"https://api.github.com/users/slifty/received_events","type":"User","site_admin":false},"labels":[{"id":845480562,"url":"https://api.github.com/repos/SolutionGuidance/psm/labels/review","name":"review","color":"ededed","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/SolutionGuidance/psm/milestones/16","html_url":"https://github.com/SolutionGuidance/psm/milestone/16","labels_url":"https://api.github.com/repos/SolutionGuidance/psm/milestones/16/labels","id":3229133,"number":16,"title":"June 2018","description":"","creator":{"login":"cecilia-donnelly","id":1497818,"avatar_url":"https://avatars0.githubusercontent.com/u/1497818?v=4","gravatar_id":"","url":"https://api.github.com/users/cecilia-donnelly","html_url":"https://github.com/cecilia-donnelly","followers_url":"https://api.github.com/users/cecilia-donnelly/followers","following_url":"https://api.github.com/users/cecilia-donnelly/following{/other_user}","gists_url":"https://api.github.com/users/cecilia-donnelly/gists{/gist_id}","starred_url":"https://api.github.com/users/cecilia-donnelly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cecilia-donnelly/subscriptions","organizations_url":"https://api.github.com/users/cecilia-donnelly/orgs","repos_url":"https://api.github.com/users/cecilia-donnelly/repos","events_url":"https://api.github.com/users/cecilia-donnelly/events{/privacy}","received_events_url":"https://api.github.com/users/cecilia-donnelly/received_events","type":"User","site_admin":false},"open_issues":21,"closed_issues":13,"state":"open","created_at":"2018-03-29T16:19:15Z","updated_at":"2018-05-01T19:55:11Z","due_on":"2018-07-13T07:00:00Z","closed_at":null},"comments":3,"created_at":"2018-04-26T15:33:44Z","updated_at":"2018-05-03T03:57:06Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/SolutionGuidance/psm/pulls/798","html_url":"https://github.com/SolutionGuidance/psm/pull/798","diff_url":"https://github.com/SolutionGuidance/psm/pull/798.diff","patch_url":"https://github.com/SolutionGuidance/psm/pull/798.patch"},"body":"We're moving our database setup to Liquibase migrations.  This PR contains the initial setup of that change as well an initial changeset just to get things started.  In future each ChangeSet will get its own commit; this was a special case because the files didn't exist yet, so there were no changes to patch into them. The bulk of the migration scripts themselves will be separate PRs.\r\n\r\nTwo other important notes:\r\n\r\n1) We had talked about having the liquibase tasks be part of an existing project; this made sense initially, but our directory structure already places `db` as its own project (which is also best practice). By mirroring this structure in gradle we get much more intuitive migration commands (e.g. `db:update` instead of `service:update`), which feels much more natural to me.\r\n\r\nI feel like this is using the concept of projects appropriately -- and that the database is an encapsulated, independent component of the system (basically, it is reasonable to organize its management logic as such.)\r\n\r\n2) I spent a little bit of time looking for the right place to put automated liquibase code as part of service startup, I decided not to go through with it for this PR.  I feel that the gradle approach gives full control while still script-able and therefore potentially automated as part of deployment scripts.  Embedding migrations into code, on the other hand, would remove agency from developers and administrators who might not want migrations to be run outside of formal deployments.\r\n\r\nIn other words: whenever an updated version of the application is deployed it should be trivial to include a line to the deployment script to run the migrations (whereas it would not be trivial to have migrations NOT run when the application is started, if calls to migrations were hard coded into service).\r\n\r\nHappy to discuss either point in more detail."},"comment":{"url":"https://api.github.com/repos/SolutionGuidance/psm/issues/comments/386185633","html_url":"https://github.com/SolutionGuidance/psm/pull/798#issuecomment-386185633","issue_url":"https://api.github.com/repos/SolutionGuidance/psm/issues/798","id":386185633,"user":{"login":"slifty","id":208884,"avatar_url":"https://avatars1.githubusercontent.com/u/208884?v=4","gravatar_id":"","url":"https://api.github.com/users/slifty","html_url":"https://github.com/slifty","followers_url":"https://api.github.com/users/slifty/followers","following_url":"https://api.github.com/users/slifty/following{/other_user}","gists_url":"https://api.github.com/users/slifty/gists{/gist_id}","starred_url":"https://api.github.com/users/slifty/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slifty/subscriptions","organizations_url":"https://api.github.com/users/slifty/orgs","repos_url":"https://api.github.com/users/slifty/repos","events_url":"https://api.github.com/users/slifty/events{/privacy}","received_events_url":"https://api.github.com/users/slifty/received_events","type":"User","site_admin":false},"created_at":"2018-05-03T03:57:06Z","updated_at":"2018-05-03T03:57:06Z","author_association":"CONTRIBUTOR","body":"@jasonaowen absolutely, however I'd really like to merge this as it stands so that I can start to make progress on the migrations.\r\n\r\nThe focus of this PR wasn't ever meant to be the documentation -- I mostly was creating a placeholder with some basics which we could iterate on separately."}}
{"actor":{"display_login":"slifty"}}