Backup do Banco no V2
Backup do Código no V2
Restore do banco no V3
Restore do código no V3
O objetivo desse tutorial é mostrar como migrar uma aplicação com banco de dados e o seu código de nossa plataforma antiga para a nova plataforma, a partir de agora vou me referir as plataformas como V2 para a antiga e V3 para a nova geração.
Para seguir este tutorial é necessário que você tenha um repositório git remoto (Bitbucket, Github ou algum privado). Não iremos abordar como criar um repositório nos serviços, você encontrará boa documentação em cada um deles ;)
O cenário atual é um wordpress e um banco mysql, mas o processo é o mesmo caso você tenha um postgresql, mongodb ou seu código seja python, ruby, node.js etc.
Então vamos começar.
Nossa aplicação no V2:
Ao acessar a URL do site nesse exemplo, podemos ver que temos 1 post de teste e uma imagem no post.
Backup do Banco
Na imagem abaixo temos os dados de conexão no banco.
Então vamos fazer um dump do banco através de um port-forward do gear para nossa máquina.
Para fazer o port-forward utilize o comando rhc port-forward -a <nome_do_app> -n <namespace> -l <seu_login>.
Ex:
vander@llghost:~$ rhc port-forward -a wp -n malv -l vander.nunes@getupcloud.com
Checking available ports ... done
Forwarding ports ...
To connect to a service running on OpenShift, use the Local address
Service Local OpenShift
------- -------------- ---- ----------------
httpd 127.0.0.1:8080 => 127.5.132.1:8080
mysql 127.0.0.1:3306 => 127.5.132.2:3306
Press CTRL-C to terminate port forwarding
No exemplo acima nós podemos ver que foi redirecionado a porta 3306 do gear wp para o meu localhost na porta 3306.
Agora com a porta 3306 redirecionada e mapeada em nosso localhost, vamos abrir um novo terminal para conectar no MySQL (você pode usar um cliente de preferência).
Importante: se você fechar o terminal do port-forward a conexão será fechada.
Ex:
vander@llghost:~$ mysqldump -u admin9ExQabc -h 127.0.0.1 -P 3306 wp -p > wp-base.sql
Enter password:
vander@llghost:~$ ls -lh wp-base.sql
-rw-rw-r-- 1 vander vander 325K Jul 5 11:08 wp-base.sql
No exemplo acima eu estou fazendo backup da base wp, mas você pode fazer backup de todas as bases ao substituir o wp por --all-databases.
Com o banco em mãos podemos fazer o backup do nosso código que está em produção.
Backup do Código
Em nossa plataforma V2 podemos ver o repositório para clonarmos nosso código.
Então basta fazermos o clone usando o git clone.
Ex:
vander@llghost:~$ git clone ssh://577a8b0399fc77ff0f000008@wp-malv.getup.io/~/git/wp.git/
Cloning into 'wp'...
remote: Counting objects: 5346, done.
remote: Compressing objects: 100% (2724/2724), done.
remote: Total 5346 (delta 2519), reused 5346 (delta 2519)
Receiving objects: 100% (5346/5346), 15.41 MiB | 115.00 KiB/s, done.
Resolving deltas: 100% (2519/2519), done.
Checking connectivity... done.
Agora que clonamos, vamos entrar no diretório que contem o código e iniciar o diretório em nosso novo repositório, que nesse exemplo eu criei no bitbucket.
vander@llghost:~$ cd wp/php/
vander@llghost:~/wp/php$ git init
Initialized empty Git repository in /home/vander/wp/php/.git/
vander@llghost:~/wp/php$ git remote add origin https://vandervnr@bitbucket.org/vandervnr/v3.git
vander@llghost:~/wp/php$ git add .
vander@llghost:~/wp/php$ git commit -am "Migracao v2 to v3"
[master (root-commit) 2ea6918] Migracao v2 to v3
1157 files changed, 388818 insertions(+)
vander@llghost:~/wp/php$ git push --set-upstream origin master
Password for 'https://vandervnr@bitbucket.org':
Counting objects: 1255, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1229/1229), done.
Writing objects: 100% (1255/1255), 5.83 MiB | 727.00 KiB/s, done.
Total 1255 (delta 96), reused 0 (delta 0)
To https://vandervnr@bitbucket.org/vandervnr/v3.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
Agora com o backup do banco e o código da aplicação, que eu acabei de fazer um clone e um push para o meu novo repositório, já podemos iniciar a migração para o V3.
Restore do banco no V3
Primeiro passo será criar um projeto, a aplicação e o componente de banco de dados no V3.
Com o MySQL criado, precisamos dos dados de conexão. Na home do projeto clique no banco e vá em variáveis de ambiente para visualizar as infos de conexão.
Reparem que no exemplo acima o nome da base é o mesmo que eu fiz backup no V2, isso é importante para que você tenha permissão de restaurar o banco.
Agora vamos fazer um port-forward do banco para restaurar o banco utilizando o "oc". Você pode ver como instalar aqui.
Ex:
vander@llghost:~$ oc get pods
NAME READY STATUS RESTARTS AGE
mysql-1-a53wz 1/1 Running 0 9m
Com o nome do pod podemos fazer o port-forward.
Ex:
vander@llghost:~$ oc port-forward mysql-1-a53wz 3306
I0705 17:02:02.538310 16548 portforward.go:213] Forwarding from 127.0.0.1:3306 -> 3306
I0705 17:02:02.539220 16548 portforward.go:213] Forwarding from [::1]:3306 -> 33066
Agora em um novo terminal podemos conectar no banco e restaurar a base wp do wordpress que fizemos backup.
Ex:
vander@llghost:~$ mysql -u user7XJ -h 127.0.0.1 -P 3306 -p wp < wp-base.sql
Enter password:
vander@llghost:~$
Para verificar se importou corretamente.
Ex:
vander@llghost:~$ mysql -u user7XJ -h 127.0.0.1 -P 3306 -p wp
Enter password:
Reading table information for completion of table and column names
.......
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show tables;
+-----------------------+
| Tables_in_wp |
+-----------------------+
| wp_commentmeta |
| wp_comments |
| wp_links |
| wp_options |
| wp_postmeta |
| wp_posts |
| wp_term_relationships |
| wp_term_taxonomy |
| wp_terms |
| wp_usermeta |
| wp_users |
+-----------------------+
11 rows in set (0,03 sec)
mysql>
O processo de restauração pode levar alguns minutos dependendo do tamanho da base.
Agora que o banco foi importado, vamos a publicação do nosso código.
Restore do código no V3
Para fazer o restore do seu código, é importante passar os novos dados de conexão ao banco, no caso do wordpress eu posso alterar o wp-config.php para passar esses dados, ficando da seguinte forma:
Se você tiver as linhas abaixo, comente pois não serão usadas no V3.
Dentro do mesmo projeto onde você criou o banco, vamos criar a aplicação usando uma imagem com a linguagem do seu código, no nosso exemplo PHP.
Na tela seguinte você vai entrar com a URL do seu repositório e os dados de conexão.
Você pode utilizar autenticação por usuário e senha ou adicionando uma chave SSH (falta link para como adicionar chave SSH). Após preencher a URL do repositório e dados de autenticação, clique em Criar.
Agora você deve ter dois apps em seu projeto.
Ao abrir o WP, você verá a URL da sua aplicação,
Podemos ver que ao abrir a URL, o site já está operacional e com o mesmo post que existia no V2.
Finalizamos aqui nosso how-to, qualquer duvida não deixe de nos escrever e nos ajudar a melhorar nossos artigos.
Comentários
0 comentário
Por favor, entre para comentar.