{"action":"created","issue":{"url":"https://api.github.com/repos/TrinityCore/TrinityCore/issues/14139","labels_url":"https://api.github.com/repos/TrinityCore/TrinityCore/issues/14139/labels{/name}","comments_url":"https://api.github.com/repos/TrinityCore/TrinityCore/issues/14139/comments","events_url":"https://api.github.com/repos/TrinityCore/TrinityCore/issues/14139/events","html_url":"https://github.com/TrinityCore/TrinityCore/pull/14139","id":57609507,"number":14139,"title":"[WIP] Database update system","user":{"login":"Naios","id":1146834,"avatar_url":"https://avatars.githubusercontent.com/u/1146834?v=3","gravatar_id":"","url":"https://api.github.com/users/Naios","html_url":"https://github.com/Naios","followers_url":"https://api.github.com/users/Naios/followers","following_url":"https://api.github.com/users/Naios/following{/other_user}","gists_url":"https://api.github.com/users/Naios/gists{/gist_id}","starred_url":"https://api.github.com/users/Naios/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Naios/subscriptions","organizations_url":"https://api.github.com/users/Naios/orgs","repos_url":"https://api.github.com/users/Naios/repos","events_url":"https://api.github.com/users/Naios/events{/privacy}","received_events_url":"https://api.github.com/users/Naios/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-02-13T15:10:40Z","updated_at":"2015-02-13T15:36:33Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/TrinityCore/TrinityCore/pulls/14139","html_url":"https://github.com/TrinityCore/TrinityCore/pull/14139","diff_url":"https://github.com/TrinityCore/TrinityCore/pull/14139.diff","patch_url":"https://github.com/TrinityCore/TrinityCore/pull/14139.patch"},"body":"Currently i'm working to implement a great idea of @DDuarte mentioned in [this post](http://www.trinitycore.org/f/topic/11026-updating-the-update-system/?p=71939).\r\nThe idea is very simple: let the world and authserver update its database tables itself.\r\n\r\nThe procedure is following:\r\n  * At startup the update system creates a list of all sql updates in a given directory...\r\n  * ... and compares it with a list stored in the database. (Every database has its own list of applied updates - logical)\r\n  * If needed the updater updates the database with all missing files and synchronizes the list stored in the database (maybe with sha1 hashes of the file to notify changes).\r\n  * (Future) The system shall provide a hotdeploy option too so it checks from time to time if a file was changed and updates it, \r\n\r\n[Workig location](https://github.com/Naios/TrinityCore/tree/dbupdater)\r\n"},"comment":{"url":"https://api.github.com/repos/TrinityCore/TrinityCore/issues/comments/74272076","html_url":"https://github.com/TrinityCore/TrinityCore/pull/14139#issuecomment-74272076","issue_url":"https://api.github.com/repos/TrinityCore/TrinityCore/issues/14139","id":74272076,"user":{"login":"Naios","id":1146834,"avatar_url":"https://avatars.githubusercontent.com/u/1146834?v=3","gravatar_id":"","url":"https://api.github.com/users/Naios","html_url":"https://github.com/Naios","followers_url":"https://api.github.com/users/Naios/followers","following_url":"https://api.github.com/users/Naios/following{/other_user}","gists_url":"https://api.github.com/users/Naios/gists{/gist_id}","starred_url":"https://api.github.com/users/Naios/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Naios/subscriptions","organizations_url":"https://api.github.com/users/Naios/orgs","repos_url":"https://api.github.com/users/Naios/repos","events_url":"https://api.github.com/users/Naios/events{/privacy}","received_events_url":"https://api.github.com/users/Naios/received_events","type":"User","site_admin":false},"created_at":"2015-02-13T15:36:33Z","updated_at":"2015-02-13T15:36:33Z","body":"@Shauren xD you are right, this sql option needs to be set.\r\n\r\nBut i disagree to open a new connection for update purposes since the DatabaseWorker's need to be blocked (it can't continue if the database is out of date)."}}