{"action":"closed","issue":{"url":"https://api.github.com/repos/interlegis/sapl/issues/1376","repository_url":"https://api.github.com/repos/interlegis/sapl","labels_url":"https://api.github.com/repos/interlegis/sapl/issues/1376/labels{/name}","comments_url":"https://api.github.com/repos/interlegis/sapl/issues/1376/comments","events_url":"https://api.github.com/repos/interlegis/sapl/issues/1376/events","html_url":"https://github.com/interlegis/sapl/issues/1376","id":249116977,"number":1376,"title":"Simplificar rotina de migração considerando apenas registros visíveis","user":{"login":"marciomazza","id":579665,"avatar_url":"https://avatars2.githubusercontent.com/u/579665?v=4","gravatar_id":"","url":"https://api.github.com/users/marciomazza","html_url":"https://github.com/marciomazza","followers_url":"https://api.github.com/users/marciomazza/followers","following_url":"https://api.github.com/users/marciomazza/following{/other_user}","gists_url":"https://api.github.com/users/marciomazza/gists{/gist_id}","starred_url":"https://api.github.com/users/marciomazza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marciomazza/subscriptions","organizations_url":"https://api.github.com/users/marciomazza/orgs","repos_url":"https://api.github.com/users/marciomazza/repos","events_url":"https://api.github.com/users/marciomazza/events{/privacy}","received_events_url":"https://api.github.com/users/marciomazza/received_events","type":"User","site_admin":false},"labels":[{"id":310300035,"url":"https://api.github.com/repos/interlegis/sapl/labels/migra%C3%A7%C3%A3o","name":"migração","color":"eb6420","default":false}],"state":"closed","locked":false,"assignee":{"login":"marciomazza","id":579665,"avatar_url":"https://avatars2.githubusercontent.com/u/579665?v=4","gravatar_id":"","url":"https://api.github.com/users/marciomazza","html_url":"https://github.com/marciomazza","followers_url":"https://api.github.com/users/marciomazza/followers","following_url":"https://api.github.com/users/marciomazza/following{/other_user}","gists_url":"https://api.github.com/users/marciomazza/gists{/gist_id}","starred_url":"https://api.github.com/users/marciomazza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marciomazza/subscriptions","organizations_url":"https://api.github.com/users/marciomazza/orgs","repos_url":"https://api.github.com/users/marciomazza/repos","events_url":"https://api.github.com/users/marciomazza/events{/privacy}","received_events_url":"https://api.github.com/users/marciomazza/received_events","type":"User","site_admin":false},"assignees":[{"login":"marciomazza","id":579665,"avatar_url":"https://avatars2.githubusercontent.com/u/579665?v=4","gravatar_id":"","url":"https://api.github.com/users/marciomazza","html_url":"https://github.com/marciomazza","followers_url":"https://api.github.com/users/marciomazza/followers","following_url":"https://api.github.com/users/marciomazza/following{/other_user}","gists_url":"https://api.github.com/users/marciomazza/gists{/gist_id}","starred_url":"https://api.github.com/users/marciomazza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marciomazza/subscriptions","organizations_url":"https://api.github.com/users/marciomazza/orgs","repos_url":"https://api.github.com/users/marciomazza/repos","events_url":"https://api.github.com/users/marciomazza/events{/privacy}","received_events_url":"https://api.github.com/users/marciomazza/received_events","type":"User","site_admin":false},{"login":"LucianoAlmeida","id":4074173,"avatar_url":"https://avatars2.githubusercontent.com/u/4074173?v=4","gravatar_id":"","url":"https://api.github.com/users/LucianoAlmeida","html_url":"https://github.com/LucianoAlmeida","followers_url":"https://api.github.com/users/LucianoAlmeida/followers","following_url":"https://api.github.com/users/LucianoAlmeida/following{/other_user}","gists_url":"https://api.github.com/users/LucianoAlmeida/gists{/gist_id}","starred_url":"https://api.github.com/users/LucianoAlmeida/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LucianoAlmeida/subscriptions","organizations_url":"https://api.github.com/users/LucianoAlmeida/orgs","repos_url":"https://api.github.com/users/LucianoAlmeida/repos","events_url":"https://api.github.com/users/LucianoAlmeida/events{/privacy}","received_events_url":"https://api.github.com/users/LucianoAlmeida/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/interlegis/sapl/milestones/1","html_url":"https://github.com/interlegis/sapl/milestone/1","labels_url":"https://api.github.com/repos/interlegis/sapl/milestones/1/labels","id":1584230,"number":1,"title":"3.1","description":"","creator":{"login":"marciomazza","id":579665,"avatar_url":"https://avatars2.githubusercontent.com/u/579665?v=4","gravatar_id":"","url":"https://api.github.com/users/marciomazza","html_url":"https://github.com/marciomazza","followers_url":"https://api.github.com/users/marciomazza/followers","following_url":"https://api.github.com/users/marciomazza/following{/other_user}","gists_url":"https://api.github.com/users/marciomazza/gists{/gist_id}","starred_url":"https://api.github.com/users/marciomazza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marciomazza/subscriptions","organizations_url":"https://api.github.com/users/marciomazza/orgs","repos_url":"https://api.github.com/users/marciomazza/repos","events_url":"https://api.github.com/users/marciomazza/events{/privacy}","received_events_url":"https://api.github.com/users/marciomazza/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":504,"state":"open","created_at":"2016-02-15T20:37:56Z","updated_at":"2017-09-18T11:36:07Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2017-08-09T18:15:55Z","updated_at":"2017-09-18T11:36:07Z","closed_at":"2017-09-18T11:36:07Z","author_association":"OWNER","body":"A rotina de migração foi inicialmente concebida para levar para a base do sapl 3.1 todas as informações do banco do 2.5, inclusive:\r\n* histórico de registros apagados (marcados com o campo `ind_excluido=1`)\r\n* registros órfãos (aqueles onde uma FK aponta para algo que foi apagado, o que aconteceu pois o banco do 2.5 não tinha restrições de integridade ativas)\r\n* outras possíveis inconsistências\r\n\r\nConsiderando que o sapl 2.5 não possui histórico de exclusão visível para o usuário e que os registros órfãos também não eram acessíveis, decidimos simplificar a rotina de migração e:\r\n\r\n* migrar somente aquilo que for efetivamente visível no sistema e ignorar aquilo que só é acessível via consulta direta ao banco\r\n* não migrar histórico de exclusão (excluindo os registros marcados com o campo `ind_excluido=1`)\r\n\r\nVale lembrar que isso não provoca perda de dados, pois manteremos backups das bases originais, e não diminui o acesso aos dados no nível do sistema: tudo que antes era acessível via sistema continuará acessível.\r\n\r\n### Passos para implementação\r\n\r\n* Ao invés de criar um stub para o objeto inexistente apontado por uma FK, simplesmente ignorar o objeto  órfão cuja FK aponta para algo inexistente.\r\n* Não migrar os objetos marcados como excluídos\r\n* Identificar outros casos em que algo está na base e não é visível e ignorar. @LucianoAlmeida sugeriu criar ações pré-migração para apagar registros problemáticos. Já temos algo do tipo rodando no começo da rotina atual: é expandir se necessário.\r\n"}}
{"actor":{"display_login":"marciomazza"}}