Upgrade to Pro — share decks privately, control downloads, hide ads and more …

O que não .gitignorar na sua app Rails

O que não .gitignorar na sua app Rails

Meu nome é Ulisses e trabalho na Plataformatec como desenvolvedor de software. Plataformatec é uma consultoria, lá temos contato com vários clientes.Uma das coisas que teve debate ultimamente, é o que as pessoas têm colocado no arquivo de .gitignore. Percebemos para alguns arquivos existem alternativas e para outros vale a pena o preço mante-los no controle de versão.

Ulisses Almeida

March 25, 2015
Tweet

More Decks by Ulisses Almeida

Other Decks in Programming

Transcript

  1. secrets.yml # Make sure the secrets in this file are

    kept private # if you're sharing your code publicly. development: secret_key_base: 1a1fd4fc0512b46ea449d07 test: secret_key_base: 1ffde16fcf1e55737cd8a60 # Do not keep production secrets in the repository, # instead read values from the environment. production: secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
  2. Make sure the secrets in this file are kept private

    if you're sharing your code publicly.
  3. Complicações • Setup mais complexo • Difícil de controlar as

    variaveis • Workaround config/secrets.yml.sample
  4. Recomendado # config/secrets.yml # Do not keep production secrets in

    the repository, # instead read values from the environment. production: secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
  5. Complicações • Você não tem a representação do banco de

    dados atual • Precisa sempre executar sempre todas migrations • O número de arquivos na pasta de migrations cresce muito rápido. • Isso é lento :(
  6. Complicações • Precisa manter manualmente todas suas migrations • A

    pasta tende a ficar com muitos arquivos antigos • Migrations muito antigas tendem a quebrar ou não fazerem mais sentido • Remoção/Adição de tabelas, colunas e models por exemplo • O rake db:setup perde sua importância.
  7. Na maioria dos casos • Sua aplicação em produção só

    precisa das migrations novas • Um database novo só precisa do rake db:setup
  8. rake db:setup rake db:create # Cria o banco de dados

    rake db:structure:load # Carrega a estrutura do structure.sql rake db:seed # Carrega os dados
  9. rake db:structure:load • Permite carregar a estrutura atual do banco

    de dados. • Não há necessidade executar todas migrations • Bem mais rápido!
  10. structure.sql • O git diff é difícil de revisar •

    ¯\_()_/¯ • Conflitos difíceis de resolver • Melhor ter esses conflitos em desenvolvimento do que em produção