Alterando o timeout de consultas da app no Heroku

Olá pessoal !

Hoje na parte da tarde,  estava eu tranquilo, quando de repente decido verificar se está tudo ok com minha aplicação “deployada” no heroku. Eis que me deparo com o seguinte erro:

PGError: ERROR: canceling statement due to statement timeout

Comecei a procurar o erro até entrar na lista dos usuários do heroku e lá encontrei a resposta do post pelo Higgaion.

Para resolver o problema, precisei dar um novo commit em minha app, rodar o comando git push heroku e a partir daí sim, consegui abrir o heroku console(para quem não sabe, basta digitar heroku console no terminal, dentro da pasta da sua app).  Dentro do console, segui os passos do Haggion:

ActiveRecord::Base.connection.select_all('show statement_timeout')

Para obter a saída:

=> [{“statement_timeout”=>”6s”}]

Que significa que para cada consulta, o timeout é de apenas 6 segundos. Para alterar isto, para 1 min por exemplo, basta executar no console:

ActiveRecord::Base.connection.select_all('set statement_timeout to 60000')

Bom, fica a dica rápida, espero ter ajudado quem teve o mesmo tipo de problema !

Anúncios

Instalcação de gems no Heroku

Olá pessoas, depois de algum tempo, volto a postar algo útil para nosso dia-a-dia de deploys no site de hospedagem free Heroku !

O Heroku, precisa de alguma forma, identificar quais plugins sua aplicação possui para quando for feito o deploy, ele consiga encontrar estas gems e instalá-las para você.

O processo é bem simples, basta criar um arquivo chamado ‘.gems’ na raiz do seu projeto. Dentro deste arquivo, você inclui as gems e se necessário indique a versão e/ou o repositório desta gem, como no exemplo da documentação do Heroku:

hpricot –version ‘>= 0.2’ –source code.whytheluckystiff.net

Feito isto, basta rodar os comandos:
– git add .gems
– git commit -m ‘added gems manifest file’
– git push heroku

Um exemplo de saída com sucesso:

Counting objects: 4, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 356 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)

—–> Heroku receiving push

—–> Installing gem hpricot >= 0.2 from http://code.whytheluckystiff.net
Building native extensions.  This could take a while…
Successfully installed hpricot-0.6
1 gem installed

—–> Installing gem dm-core 0.9.10 from http://gems.rubyforge.org
Successfully installed addressable-2.0.2
Successfully installed extlib-0.9.10
Successfully installed data_objects-0.9.11
Successfully installed dm-core-0.9.10
4 gems installed

—–> Rails app detected
Compiled slug size is 4.3MB
—–> Launching………….. done
App deployed to Heroku

To git@heroku.com:vivid-moon-60.git
91425e3..fe10e87  master -> master

E é somente isso.
Utilizei como fonte, a documentação do site Heroku

Até a próxima !

Upload de Imagens com Paperclip, armazenando no Banco de Dados

Bom pessoal, estive quebrando a cabeça esses dias pois tenho um site hospedado no @heroku e lá não era possível fazer upload de imagens com o Paperclip devido à permissões.
Procurando por uma solução vi muitos falando sobre o Amazon S3, porém, por mais barato que seja, é pago ! Então, vamos armazenar as imagens no banco(já que este site não terá muitas imagens e a performance não será comprometida).
Entrei na lista do Paperclip “desesperado” e lá encontrei uma postagem falando a respeito e nesta postagem o link que me salvou:

http://patshaughnessy.net/2009/4/14/database-storage-for-paperclip-rewritten-to-use-a-single-table#comments

Neste tutorial, o Pat nos mostra uma atualização do Paperclip onde é possível fazer o storage dos uploads no próprio banco de dados.
Seguindo o passo-a-passo do tutorial, consegui atingir meu objetivo e as imagens estão armazenadas no banco de dados em um campo do tipo LONGBLOB(atentem à isto caso estejam usando o MySQL).
Bem, é isso, qualquer dúvida estarei à disposição.

Obs: Em breve pretendo migrar o blog para wordpress ou algum outro que permita fazer tutoriais mais facilmente.

Hospedagem gratuita no Heroku

Bem amigos, cá estou para divulgar hospedagem gratuita de Ruby on Rails, o @heroku !
Excelente por ser gratuito, apesar de eu não ter tido um tempo legal para testar, tive boas recomendações e para fazer o deploy é muito simples.
Bom, vamos ao que interessa, as configurações:

– Primeiro, devemos instalar a gem do heroku:
sudo gem install heroku

– Crie um novo repositório git para sua app(caso ainda nao tennha criado):
cd “sua_app”
git init && git add . && git commit -m “first commit”

Obs: Cuidado com as aspas.

– Criar uma nova aplicação heroku:
heroku create
Created http://sharp-autumn-42.com/ | git@heroku.com:sharp-autumn-42.git
Git remote heroku added

Obs: O nome da app(sharp-autumn) é gerado automaticamente, depois mostrarei como é simples renomear.

git push heroku master

– Executar migrations:
heroku rake db:migrate

– Abrir app no seu navegador:

heroku open

– Para renomear sua app é simples, basta executar:


heroku rename novonome --app nomeantigo
http://novonome.heroku.com/ | git@heroku.com:novonomoe.git

Sua app vai ficar com o seguinte endereço: http://novonome.heroku.co
Bem simples não ?
Até a próxima !