@rogeriolino obrigada por criar tópico, vou registrar aqui os itens que já analisei. Aguardo contribuições dos outros participantes.
Na versão 1.5.1 são 30 tabelas com 158 campos no total. Nem todas as tabelas precisam ser migradas, por exemplo as do atendimento do dia (são transferidos para a tabela histórico ao reiniciar as senhas toda madrugada) e a que controla o painel de senhas chamadas no dia.
Aqui na Prefeitura identifiquei que será necessário migrar apenas 14 tabelas pois das outras 16 tabelas:
- 9 estão vazias (
historico_atend_meta
, oauth_access_tokens
, oauth_clients
, oauth_refresh_tokens
, oauth_scopes
, paineis
, paineis_servicos
, serv_meta
e uni_meta
)
- 2 são de configuração / gerenciamento de módulos da versão 1.5 (config e modulos)
- 4 são zeradas de madrugada quando as senhas são reiniciadas automaticamente (painel_senha, atendimentos,
atend_codif
e atend_meta
)
- 1 talvez não seja necessária, pois é preenchida a medida que os usuários acessam a tela de atendimento (
usu_meta
)
O que deve dar trabalho é entender as diferenças na estrutura de serviços, subserviços e unidades.
Na versão 1.5 as colunas não possuem o COMMENT para indicar o significado do conteúdo, e nem sempre o nome do campo é o suficiente para o entendimento.
O primeiro passo para a criação do script é analisar a estrutura das tabelas das 2 versões para gerar um 'de / para'.
-- lista de tabelas
SELECT t.table_name, t.table_rows, t.engine, t.auto_increment, t.table_comment
FROM information_schema.tables t
WHERE t.table_schema = 'sga'
and t.table_type != 'VIEW'
order by t.table_name
Observações:
a) a quantidade de linhas apresentada pelo information_schema.tables é aproximada para as tabelas com engine = InnoDB.
b) a informação auto_increment é necessária para que após a importação dos dados sejam executados os comandos ALTER TABLE nomedatabela AUTO_INCREMENT = novovalor;
para cada uma das tabelas
-- lista de campos das tabelas
SELECT * FROM INFORMATION_SCHEMA.COLUMNS c
where c.TABLE_SCHEMA = 'sga' and c.TABLE_NAME not like 'view%'
order by c.TABLE_NAME,c.ORDINAL_POSITION
Antes de migrar resetar as senhas para que os dados das tabelas ATEND sejam transferidos para as tabelas HIST e o campo TOTAL da tabela CONTADOR seja zerado.
Tabela USUARIOS - antes de migrar verificar se na versão 2.0 foi inserido campo para email e analisar a possibilidade de já importar preenchendo esta informação. Se no perfil o usuário pode alterar o email, então esse cuidado não será necessário.
Verificar se a criptografia de senha é igual nas duas versões, se for diferente uma opção é voltar todas as senhas para um valor padrão e orientar os usuários para alterar pelo sistema.
Tabela CARGOS_MOD_PERM
- ajustar para o código do módulo correspondente na versão 2.0