{"action":"created","issue":{"url":"https://api.github.com/repos/DHI-GRAS/terracotta/issues/118","repository_url":"https://api.github.com/repos/DHI-GRAS/terracotta","labels_url":"https://api.github.com/repos/DHI-GRAS/terracotta/issues/118/labels{/name}","comments_url":"https://api.github.com/repos/DHI-GRAS/terracotta/issues/118/comments","events_url":"https://api.github.com/repos/DHI-GRAS/terracotta/issues/118/events","html_url":"https://github.com/DHI-GRAS/terracotta/issues/118","id":392482517,"node_id":"MDU6SXNzdWUzOTI0ODI1MTc=","number":118,"title":"Database compatibility across versions","user":{"login":"mrpgraae","id":3639582,"node_id":"MDQ6VXNlcjM2Mzk1ODI=","avatar_url":"https://avatars1.githubusercontent.com/u/3639582?v=4","gravatar_id":"","url":"https://api.github.com/users/mrpgraae","html_url":"https://github.com/mrpgraae","followers_url":"https://api.github.com/users/mrpgraae/followers","following_url":"https://api.github.com/users/mrpgraae/following{/other_user}","gists_url":"https://api.github.com/users/mrpgraae/gists{/gist_id}","starred_url":"https://api.github.com/users/mrpgraae/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrpgraae/subscriptions","organizations_url":"https://api.github.com/users/mrpgraae/orgs","repos_url":"https://api.github.com/users/mrpgraae/repos","events_url":"https://api.github.com/users/mrpgraae/events{/privacy}","received_events_url":"https://api.github.com/users/mrpgraae/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2018-12-19T08:04:11Z","updated_at":"2018-12-20T10:51:40Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"There is no guarantee that a database created with an older version of Terracotta will work with a newer version. This means that upgrading an existing deployment of Terracotta can be a bit of a pain, since every dataset in the deployment must be re-ingested into a new database.\r\n\r\nWe could make this a bit easier, by making a `migrate-db` command, which takes an old db and creates a new one by re-ingesting everything using the keys and paths in the old db.\r\nAdditionally, we could have an option for simply forcing a version bump in the db without re-ingesting (like `--force-version-bump` or so) for power-users who know that the new version is compatible with their database. This could be nice for large deployments, where re-ingesting everything might take days.\r\n\r\nThe release notes should also specify whether or not the new version is compatible with databases from the previous version."},"comment":{"url":"https://api.github.com/repos/DHI-GRAS/terracotta/issues/comments/448955122","html_url":"https://github.com/DHI-GRAS/terracotta/issues/118#issuecomment-448955122","issue_url":"https://api.github.com/repos/DHI-GRAS/terracotta/issues/118","id":448955122,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0ODk1NTEyMg==","user":{"login":"mrpgraae","id":3639582,"node_id":"MDQ6VXNlcjM2Mzk1ODI=","avatar_url":"https://avatars1.githubusercontent.com/u/3639582?v=4","gravatar_id":"","url":"https://api.github.com/users/mrpgraae","html_url":"https://github.com/mrpgraae","followers_url":"https://api.github.com/users/mrpgraae/followers","following_url":"https://api.github.com/users/mrpgraae/following{/other_user}","gists_url":"https://api.github.com/users/mrpgraae/gists{/gist_id}","starred_url":"https://api.github.com/users/mrpgraae/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrpgraae/subscriptions","organizations_url":"https://api.github.com/users/mrpgraae/orgs","repos_url":"https://api.github.com/users/mrpgraae/repos","events_url":"https://api.github.com/users/mrpgraae/events{/privacy}","received_events_url":"https://api.github.com/users/mrpgraae/received_events","type":"User","site_admin":false},"created_at":"2018-12-20T10:51:40Z","updated_at":"2018-12-20T10:51:40Z","author_association":"CONTRIBUTOR","body":">Because minor updates always break it\r\n\r\nWhat if new features are implemented that don't break anything, would that always just be a patch or could it be considered a minor version, which then will make the e.g. `terracotta connect` not work, even though no actual breaking changes were made?\r\n\r\n>My hope is that we won't need to touch the database schema for a long time, so it could be ok to keep it this way. Otherwise I agree that we need migration scripts where possible.\r\n\r\nYes, but as far as I can see, re-ingesting from the old db, using a script like yours would _always_ work right? Unless a change is made which requires more input from the user, in which case a migration script would not work either. So a migration script would only be useful in order to avoid re-computing metadata, if that is not necessary.\r\n\r\nYou have a good point that re-ingesting from a database is very easy using the API, so the convenience value of a `migrate-db` command might not be that significant."}}
{"actor":{"display_login":"mrpgraae"}}