Migrando sua Aplicação Ruby do Heroku para a Getup

Vou mostrar o processo de migração de aplicações do Heroku para a Getup. O artigo lhe dará uma ideia de como é fácil migrar sua aplicação. Cada aplicação tem suas particularidades e você terá que adaptar de acordo com as necessidades.

 

Detalhes da Aplicação

Vamos utilizar uma aplicação da ONG Code for América, uma iniciativa sem fins lucrativos. A aplicação mais interessante é a "Adopt a hydrant" (Adote um Hidrante). A idéia é que as pessoas colaborem com o mapeamento dos hidrantes em regiões específicas ou cidades e ajudar a manter todos os cidadãos seguros

 

screenshot.png

Adote um hidrante é uma aplicação Rails que usa PostgreSQL como banco de dados.

 

Ambiente

Para começar vamos criar uma aplicação, você só precisa de um passo para isso:

rhc app create hidrante ruby-1.9 postgresql-8.4

 

Agora temos uma aplicação Ruby-1.9 e o PostgreSQL-8.4 rodando. O repositório já está clonado , então vamos acessar o diretório "hidrante" (repare o mesmo nome da aplicação).

 

Baixando o código

Vamos baixar o código do Github e sobrescrever a aplicação padrão:

 

git pull -s recursive -X theirs git://github.com/codeforamerica/adopt-a-hydrant.git master

 

Quando terminado, voce terá o código da aplicação no seu repositório pronto para ser enviado a Getup.

 

Bundler Antigo

Na Getup assim como no Openshift utlizamos uma versão antiga do Bundler, então não podemos utilizar a diretiva de seleção da versão do ruby. Para resolver vamos remover a linha abaixo do arquivo "Gemfile" na raiz do repositório.

ruby '2.0.0'

 

Conexão de Banco de Dados

Na Getup você configura a conexão com o banco através de variáveis de ambiente. Nesse passo vamos alterar o arquivo "config/database.yml" que é responsável pela conexão. Altere o ambiente "development" com o seguinte conteúdo:

 

adapter: postgresql
database: <%= ENV["OPENSHIFT_APP_NAME"] %>
host: <%= ENV["OPENSHIFT_POSTGRESQL_DB_HOST"] %>
port: <%= ENV["OPENSHIFT_POSTGRESQL_DB_PORT"] %>
username: <%= ENV["OPENSHIFT_POSTGRESQL_DB_USERNAME"] %>
password: <%= ENV["OPENSHIFT_POSTGRESQL_DB_PASSWORD"] %>

 

Secret Token

Precisamos gerar um token para o rails. Para isso basta executar o comando abaixo no diretório raiz da aplicação:

rake secret

O resultado será utilizado nós próximos passos

Agora você precisa descomentar as últimas três linhas do arquivo ".openshift/action_hooks/deploy"  e adicionar o token do passo anterior para ativar as migrações automáticas quando a aplicação é publicada.

O arquivo deverá ficar conforme abaixo:

 

export SECRET_TOKEN=<secret token do passo anterior>

pushd ${OPENSHIFT_REPO_DIR} > /dev/null

bundle exec rake db:migrate RAILS_ENV="production"

popd > /dev/null

 

O último passo é exportar a variável SECRET_TOKEN para o Apache, para isso adicione a linha abaixo no arquivo ".openshift/action_hooks/pre_start_ruby-1.9":

export SECRET_TOKEN=<secret token do passo anterior>

 

Publicando a Aplicação

Agora você pode publicar a aplicação na Getup. Para isso vamos usar a dupla "commit" e "push" já conhecida:

git add .

git commit -m "Getup"

git push origin master

 

Obs: A operação pode demorar um pouco!

Agora basta acessar o link da aplicação, e não é que funciona !

Mas ainda falta um detalhe, importar os dados.

 

Importando os dados

Para importar os dados voce precisa acessar a aplicação via ssh e rodar uma tarefa do Rake no diretório da aplicação. Para acessar a aplicação via ssh:

rhc ssh hidrante

 

E dentro da aplicação:

cd app-root/repo

bundle exec rake db:seed

exit

 

Isso pode levar um tempinho, mas quando terminado sua aplicação irá exibir os hidrantes de Boston.

 

Conclusão

Migrar aplicação do Heroku para Getup é simples. A Getup se comporta como um ambiente normal e tudo que você precisa fazer é configurar corretamente sua aplicação e nesse caso automatizar algumas tarefas.

 

Fonte: https://www.openshift.com/blogs/heroku-ruby-app-migration

Tem mais dúvidas? Envie uma solicitação

0 Comentários

Por favor, entre para comentar.
Powered by Zendesk