Migrando dados entre sistemas de bancos de dados com ActiveRecord

on September 22, 2014 12:13

Recentemente migrei este blog de MySQL para PostgreSQL.

Um dos problemas que tinha que resolver era migrar os posts existentes sem perder dados. Como os formatos de dump podem ser incompatíveis, resolvi usar o próprio ActiveRecord para me ajudar a migrar os dados.

Baixei um dump do MySQL, carreguei num BD local, e criei um banco novo no PostgreSQL.

Como eu refiz todo o código (a versão do Rails estava em 2.3.x :p), já configurei o database.yml para usar o adapter do PostgreSQL:

# config/database.yml
development:
  adapter: postgresql
  encoding: unicode
  database: blog_development
  pool: 5
  username: root
  password:
  socket: /var/pgsql_socket/.s.PGSQL.5432

Então o que eu tive que fazer foi configurar uma nova conexão para o banco legado em MySQL:

# config/database.yml
legacy_development:
  adapter: mysql2
  database: blog_development
  username: root
  password:
  port: 3306
  host: localhost

A partir daí criei um model temporário, usando a conexão MySQL:

# app/models/legacy_post.rb
class LegacyPost < ActiveRecord::Base
  establish_connection :legacy_development
  self.table_name = "posts"
end

Daí foi só entrar no console e rodar o script:

# console
LegacyPost.all.each do |legacy_post|
  Post.create(legacy_post.attributes)
end

A partir daí você pode apagar o model e editar a configuração do banco legado.

Comments

Organizando textos para leitura

on August 27, 2014 17:44

Faz anos que acabei a faculdade, mas nunca parei de estudar. No mundo de TI manter-se atualizado é obrigatório (a não ser que você queira fazer a mesma coisa pelo resto da sua vida – não recomendo). Foi assim que descobri Ruby, a ascensão do JavaScript e os inúmeros esquemas de deployment e virtualização que existem hoje.

As informações estão por todo lado na internet, mas vêm de muitos lugares diferentes, e nem sempre dá pra ler aquele artigo naquela hora que você o encontrou. Então como guardar este texto e salvá-lo para ler depois? Que ferramentas usar?

Há muitas opções por aí, muitas free, outras pagas. Depois de muito experimentar, acabei chegando num esquema que considero adequado. Lógico, as coisas podem mudar (RIP Google Reader), então é sempre bom estar atento a todas as ferramentas.

As ferramentas

Vou explicar detalhadamente como uso cada uma delas, mas segue aí a lista do que uso atualmente:

  • Pocket
  • Evernote
  • Feedly
  • Kindle (ou iPad mini)
  • IFTTT

Fontes de informação

Além do Feedly, onde assino os feeds que mais me interessam, as informações podem vir do Twitter (siga-me!), do Facebook ou mesmo de uma busca por algo específico no Google.

Para textos simples

Se é um texto simples, mando direto para o Pocket. Praticamente todas as fontes de informação têm suporte para envio para o Pocket (extensões para browsers cobrem o resto), então é algo realmente simples. Depois de lido posso arquivar ou enviar para o Evernote. Daí o próximo tópico.

Para arquivar

O Evernote é ótimo para manter um arquivo de absolutamente tudo. Eu faço backup das fotos do Instagram, checkins do Foursquare Swarm (via IFTTT – ver abaixo), tiro fotos de contas para pagar depois e principalmente arquivo tudo o que me é relevante para ter a informação sempre que eu precisar. Você pode organizar as notas em notebooks e tags. Especificamente, eu uso um notebook chamado ‘Bookmarks’, que posteriormente posso organizar por assunto que eu esteja estudando. As tags ajudam a (excelente) busca.

Leituras longas

Nada bate o Kindle e seu e-ink para leituras mais longas. Eu tenho um Kindle Paperwhite e adoro. Então se vejo que um texto é muito grande, já mando pro Kindle (via email ou extensão de browser) e também pro Evernote. Lógico que livros entram nessa categoria. Já livros em PDF, que talvez não fiquem bem no Kindle eu mando para o iBooks, daí eu leio no iPad mini. Também é possível mandar a partir do Pocket (ver abaixo).

Integrando com o IFTTT

O IFTTT (If This Then That) é uma excelente ferramenta para automatizar coisas. As receitas que utilizo para organizar meus textos:

  • From Pocket to Kindle – às vezes salvo um artigo no Pocket mas reparo que ele é meio longo, e seria melhor ler no Kindle. Sem problemas, aplico a tag ‘kindle’ no Pocket e ele envia para o meu email registrado no Kindle para receber textos
  • From Pocket to Evernote
  • Save favourite tweets to Evernote

E você? Como faz para organizar os seus textos para leitura? Descreva nos comentários.

PS: este post faz parte de uma iniciativa do @rafaelrosafu chamada #ClubeDosPosts de incentivar as pessoas a escreverem pelo menos um post por mês relacionado a TI. Se quiser participar, acesse a planilha e inclua seu twitter handle.

Comments

RailsConf 2011, here I go

on May 15, 2011 14:00

Primeiro post do ano, como o tempo passou. Não foi nem falta de tempo, mas falta do que escrever mesmo. Mas agora (hoje) parto para a "RailsConf 2011":http://railsconf.org em Baltimore, e espero ter muitas coisas para escrever depois de voltar.

Destaco algumas palestras que devo assistir:

  • From 1,000 Transactions a Month to 1 million in a Day: Lessons in Credit Card Processing from LivingSocial

  • Keeping Rails on the Tracks

  • Solving Performance Problems with Horizontal Scale. (The Worker Pattern)

  • Beyond MVC -- DCI

Antes da RailsConf, também participarei da Ignite RailsConf, com palestras de 5 minutos, 20 slides.

Depois da conferência, tiro alguns dias de férias para visitar Nova York, e realizar um de meus sonhos: assistir a um jogo no Yankee Stadium.

Agradeço à "Bio Ritmo":http://www.bioritmo.com.br por possibilitar essa experiência que será muito importante para minha vida e carreira.

Até a volta!

Comments

RubyConf Brasil, vá de bike

on October 25, 2010 15:34

Este ano a RubyConf Brasil (anteriormente RailsSummit Latin America) será em outro local, o Centro de Convenções Frei Caneca. No ano passado o evento foi no Anhembi.

Ficando em uma região central, e bem servida de transporte público (2 estações de metrô - Consolação e Anhangabaú) e dezenas de linhas de ônibus próximas), seria bobagem ir de carro pra lá (e pagar uma bica de estacionamento). Mas pensem em outro jeito de ir para lá: de bicicleta.

O Shopping Frei Caneca conta com um bicicletário UseBike, parceria entre o Instituto Parada Vital, Porto Seguro e Estapar. Lá você pode estacionar sua bicicleta, gratuitamente, das 6h às 22h. Você também pode alugar e devolver uma bicicleta, sendo que a primeira hora é grátis.

Então uma das possibilidades é alugar uma bicicleta no estacionamento do Colégio São Luis ou do Conjunto Nacional, e de lá pedalar até o Frei Caneca. Não dá nem 5 minutos pra chegar lá, mas poupa a caminhada. Se você está mais próximo da Linha Vermelha, faça o mesmo na estação Anhangabaú do metrô.

Para estacionar a bicicleta é necessário um cadastro prévio. Leve RG, CPF e comprovante de residência. Para alugar também é necessário um cartão de crédito.

Comments