Este post contém o passo-a-passo em português para a migração de uma instância de AtoM para a versão 2.6.4. A versão anterior migrada neste tutorial foi a 2.3.0 – 138. Os procedimentos aqui apresentados baseiam-se quase que totalmente na documentação oficial do sistema (com algumas modificações). A documentação oficial está disponível na Wiki da Artefactual.
Copiar dados da versão anterior: backup do servidor antigo
Antes de iniciar o procedimento, é necessário acessar o servidor que hospeda a versão anterior do AtoM e copiar os arquivos de upload, download e tradução, bem como fazer um dump do banco de dados do sistema, conforme comandos a seguir.
Compactar diretórios uploads, downloads e r, além do arquivo messages.xml. O diretório r é necessário para instalações baseadas na Base Arch, pois a estrutura foi criada em uma das versões utilizadas pela base previamente:
tar -cvzf uploads.tgz /usr/share/nginx/atom/uploads/ tar -cvzf downloads.tgz /usr/share/nginx/atom/downloads/ tar -cvzf r.tgz /usr/share/nginx/atom/r tar -cvzf messages.tgz /usr/share/nginx/atom/apps/qubit/i18n/pt_BR/messages.xml
Realizar dump do banco de dados:
mysqldump -uroot -p atom > atom_antigo.sql
Instalar arquivos no servidor novo
Após transferir para o novo servidor, os arquivos .tgz devem ser descompactados e ter seus conteúdos movidos (ou copiados) para os respectivos diretórios do sistema. Antes, porém, certifique-se que está logado com permissão de superusuário ou execute o comando:
sudo su
Comandos para descompactar os arquivos .tgz:
tar -xvzf uploads.tgz tar -xvzf downloads.tgz tar -xvzf r.tgz tar -xvzf messages.tgz
Comandos para mover os arquivos (relacionados a objetos digitais: uploads, downloads e r):
mv usr/share/nginx/atom/uploads/* /usr/share/nginx/atom/uploads/ mv usr/share/nginx/atom/downloads/* /usr/share/nginx/atom/downloads/ mv usr/share/nginx/atom/r /usr/share/nginx/atom/
Comandos para instalar o arquivo de tradução. Neste caso, renomearemos o arquivo atual antes de mover o backup, para manter a versão mais recente no servidor:
mv /usr/share/nginx/atom/apps/qubit/i18n/pt_BR/messages.xml /usr/share/nginx/atom/apps/qubit/i18n/pt_BR/_messages.xml cp usr/share/nginx/atom/apps/qubit/i18n/pt_BR/messages.xml /usr/share/nginx/atom/apps/qubit/i18n/pt_BR/
No caso do arquivo de tradução, é importante também atribuir permissão de escrita, para que os usuários consigam atualizá-lo via interface administrativa do AtoM:
chmod 775 /usr/share/nginx/atom/apps/qubit/i18n/pt_BR/messages.xml
Atualizar banco de dados
Antes de fazer a carga do banco de dados anterior, deve-se remover o banco de dados atual e criar um novo, de mesmo nome:
mysql -u root -p -e "DROP DATABASE IF EXISTS atom;" mysql -u root -p -e "CREATE DATABASE atom CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;"
Realizar carga do banco de dados:
mysql -uroot -p atom < atom_antigo.sql
Deletar views indevidas. Percebeu-se, no procedimento de migração da versão 2.3 para a 2.6 que duas views que não fazem parte do AtoM foram criadas na estrutura do banco de dados. Uma dessas views gerou um problema após a migração, que impedia o backup do banco de dados. Por conta disso, foi necessário refazer o procedimento, removendo as views em questão.
A remoção foi feita no console do mysql, acessado pelo comando:
mysql –uroot –p
Depois de logado, deve-se executar os seguintes comandos:
use atom; drop view new_view; drop view VW_TERM; exit;
Após carga e ajustes, deve-se executar a rotina de upgrade, no diretório raiz do AtoM:
cd /usr/share/nginx/atom php -d memory_limit=-1 symfony tools:upgrade-sql
Nota:É fundamental confirmar que deseja continuar com o upgrade, caso contrário, o procedimento não será realizado
Ajustar as permissões
Para garantir que todos os arquivos e diretórios do AtoM podem ser manipulados pelo usuário do Nginx (www-data):
chown -R www-data:www-data /usr/share/nginx/atom
Re-gerar os thumbnails dos objetos digitais
A partir do comando (a ser executado na raiz do AtoM – /usr/share/nginx/atom):
php symfony digitalobject:regen-derivatives
Popular a interface de busca
Com o comando (a ser executado no diretório raiz do AtoM):
php -d memory_limit=-1 symfony search:populate
Limpar o cache da aplicação e reiniciar os serviços
A partir do script refresh.sh, criado na etapa de instalação (deve ser executado no diretório raiz do AtoM):
./refresh.sh
Pronto! O AtoM, ou melhor, a Base Arch está migrada!