(41) 9225-6319
contato@felipemarques.com.br

Atualizando OsTicket 1.2 para OsTicket 1.6

Olá pessoal,

Estava eu a procurar uma solução amigável para um problema de um cliente meu, que solicitou a atualização do OsTicket 1.2 para OsTicket 1.6, e para meu espanto, depois de pesquisar muito em diversos fórums, inclusive no próprio site dos desenvolvedores, percebi que não havia uma forma direta de se fazer tal update.

Eu tinha que resolver o problema, então abri o meu MySQL Workbench e fiz  a engenharia reversa das tabelas para melhor visualizá-las. Depois de muitos selects, inserts, e de testar as duas ferramentas, pois não as conhecia, consegui chegar a uma solução paleativa, não ficou perfeito a migração, mesmo porque não seria possível, pois  osticket na versão 1.2 tinha somente 10 tabelas, ja na nova versão stable 1.6 haviam 19.

Então chega de história, abaixo segue o vídeo demonstrando as ações tomadas para finalizar o update version.

 

Siga as etapas abaixo:

1º – Faça o dump da base de dados do OsTicket 1.2 para sua máquina local (localhost), dentro do seu xampp ou wamp (estou supondo que voce ja o tenha instalado e configurado, neste post nao tratarei desta configuração.).

2º – Após isso, se voce ainda nao instalou a nova versão do OsTicket na sua máquina local, baixe aqui, e instale no seu xampp ou wamp

3º – Renomeie a base de dados do osticket1.2 para “osticket1_2”

4º – Renomeie a base de dados do osticket1.6 para “osticket1_6”

5º – Feito os passos acima, agora é só executar os seguintes SQL:

A) – Execute o seguinte SQL no seu editor preferido do MySQL, pode ser até o PHPMyAdmin. Este primeiro SQL importará todos os tickets do osticket 1.2 para osticket 1.6.

INSERT INTO `osticket1_6`.`ost_ticket` (
`ticketID` ,
`dept_id` ,
`priority_id` ,
`topic_id` ,
`staff_id` ,
`email` ,
`name` ,
`subject` ,
`helptopic` ,
`phone` ,
`phone_ext` ,
`ip_address` ,
`status` ,
`source` ,
`isoverdue` ,
`isanswered` ,
`duedate` ,
`reopened` ,
`closed` ,
`lastmessage` ,
`lastresponse` ,
`created` ,
`updated`
)

select 
	oldtable.ID, 
	2, #dept_id
	oldtable.priority, 
	NULL, 
	1, 
	oldtable.email , 
	oldtable.name , 
	oldtable.subject , 
	NULL, 
	oldtable.phone , 
	NULL , 
	oldtable.ip, 
	oldtable.status , 
	NULL , 
	NULL, 
	NULL, 
	NULL, 
	NULL, 
	NULL, 
	oldtable.trans_msg, 
	NULL, 
	oldtable.timestamp, 
	oldtable.timestamp

from osticket1_2.tickets AS oldtable

B) – Executando agora o SQL abaixo, estaremos importando as perguntas que cada cliente fez ao suporte:

INSERT INTO `osticket1_6`.`ost_ticket_message`(
ticket_id,
messageId,
message,
headers,
source,
ip_address,
created,
updated
)

SELECT
      ticket_id, #ticket_id
      t2.message, #messageId
      t2.message, #message
      t2.headers, # headers
      'Email', #source
      NULL, #ip_address,
      t2.timestamp, #created
      NULL #updated
FROM `osticket1_6`.`ost_ticket` t1
INNER JOIN `osticket1_2`.`ticket_messages` t2 ON t1.ticketid=t2.ticket

C) – Agora o SQL abaixo importa as respostas.

INSERT INTO `osticket1_6`.`ost_ticket_response`(
msg_id,
ticket_id,
staff_id,
staff_name,
response,
ip_address,
created,
updated
)

SELECT
      
      t1.msg_id, #msg_id
      t1.ticket_id, #ticket_id,
      5, #staff_id (supondo que o admin seja id 5)
      'Admin',
      t3.message,
      NULL, #ip_address,
      t3.timestamp, #created
      NULL #updated

FROM `osticket1_6`.`ost_ticket_message` t1
INNER JOIN `osticket1_6`.`ost_ticket` t2 ON t1.ticket_id=t2.ticket_id
INNER JOIN `osticket1_2`.`ticket_answers` t3 ON t2.ticketid=t3.ticket

Então é isso pessoal, se alguem tiver alguma coisa a acrescentar, comente que eu altero o post para adicionar mais informação.

Até o próximo post!!

Sobre o autor
Felipe Marques é Consultor e Analista de Sistemas Web e Mobile. Mais de 10 anos de experiência.

Faça um comentário

*

Facebook Auto Publish Powered By : XYZScripts.com
bool(false)