{"action":"opened","issue":{"url":"https://api.github.com/repos/OpenMS/OpenMS/issues/3371","repository_url":"https://api.github.com/repos/OpenMS/OpenMS","labels_url":"https://api.github.com/repos/OpenMS/OpenMS/issues/3371/labels{/name}","comments_url":"https://api.github.com/repos/OpenMS/OpenMS/issues/3371/comments","events_url":"https://api.github.com/repos/OpenMS/OpenMS/issues/3371/events","html_url":"https://github.com/OpenMS/OpenMS/issues/3371","id":312204511,"number":3371,"title":"OpenMS database support","user":{"login":"dmccloskey","id":5378614,"avatar_url":"https://avatars1.githubusercontent.com/u/5378614?v=4","gravatar_id":"","url":"https://api.github.com/users/dmccloskey","html_url":"https://github.com/dmccloskey","followers_url":"https://api.github.com/users/dmccloskey/followers","following_url":"https://api.github.com/users/dmccloskey/following{/other_user}","gists_url":"https://api.github.com/users/dmccloskey/gists{/gist_id}","starred_url":"https://api.github.com/users/dmccloskey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dmccloskey/subscriptions","organizations_url":"https://api.github.com/users/dmccloskey/orgs","repos_url":"https://api.github.com/users/dmccloskey/repos","events_url":"https://api.github.com/users/dmccloskey/events{/privacy}","received_events_url":"https://api.github.com/users/dmccloskey/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-04-07T12:58:28Z","updated_at":"2018-04-07T12:58:28Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"### Description\r\nAs an alternative to storing many of the file formats (e.g., FeatureXML, TraML, etc.,) as individual .xml or .csv files, it maybe more convenient for downstream processing to store the file formats in a persistent SQL compliant format that could then be queried for down stream processing and analysis.\r\n\r\n### Objectives\r\n- [ ] minimal support for connecting to SQLite and submitting raw string transactions against the database\r\n- [ ] similar support for other databases (e.g., postgres)\r\n- [ ] optional ORM support to abstract away the need for querying the database using raw string transactions, but instead utilize C++ syntax\r\n- [ ] Schemas for our most utilized file formats that are most ameniable to SQL storage (i.e., probably not mzML)\r\n\r\n### Example ORMs currently avaiable\r\n#### sqlite_orm\r\n- https://github.com/fnc12/sqlite_orm/tree/master\r\n- support for sqlite only\r\n- header only library\r\n- utilizes some c++ 14 features\r\n\r\n#### ODB ORM\r\n- https://www.codesynthesis.com/products/odb/\r\n- support for most modern SQL compliant databases\r\n- large overhead in terms of library size\r\n\r\n### Open questions\r\n1. What are the databases that will users need to interact with?  For example, sqlite could work as a nice stand alone file format for individual users, but LIMS integration would most likely require support for a more industry robust database like postgres.\r\n2. What is the minimal amount of abstraction from the database needed?  Is simply offering a wrapper that allows users to open a connection and start a transaction with any database sufficient?  Or will a fully fledged ORM to abstract the need for SQL needed?\r\n3. What file formats that OpenMS currently supports should we have predefined schemas and serialization capabilities into and out of the database for out of the box?"}}
{"actor":{"display_login":"dmccloskey"}}