PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como faço para mover meu aplicativo Rails existente para o heroku? (sqlite para postgres)

10 minutos de mudança do SQLite local para um Heroku Postgres

-- atualiza seu desenvolvedor local para postgres ao longo do caminho --


Isso pressupõe que você tenha um banco de dados de desenvolvimento em sqlite e queira mover a estrutura e os dados para o heroku. Você primeiro mudará seu ambiente local para postgres e, em seguida, moverá tudo para cima.

Por que mudar? Você deve sempre ter seu ambiente de desenvolvimento espelhando seu ambiente de produção. Usar o Postgres é o padrão no heroku.

Você precisará instalar e configurar o Postgres localmente primeiro com um usuário que tenha seu nome de usuário

Software necessário:postgresql, pgloader, heroku-cli

Passos


Passe do SQLite para o Postgres em seu ambiente de desenvolvimento
  1. instale o heroku / pgloader / postgres e certifique-se de que o postgresql está sendo executado em seu sistema
  2. backup sqlite - copie development.sql para development_old.sql
  3. adicione gem 'pg' para a seção principal do seu Gemfile
  4. instalação de pacote
  5. atualizar config/database.yml (veja o exemplo abaixo)
  6. rake db:configuração
  7. cd [raiz do aplicativo]
  8. carregar banco de dados postgres com dados - pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
  9. remover gem 'sqlite3'
  10. instalação de pacote
  11. iniciar servidor - rails server
  12. teste visitando o aplicativo em localhost:3000

Configurar novo aplicativo no heroku

Siga estas instruções do heroku

Mover dados para heroku
  1. encontrar informações do heroku db - heroku pg:info
  2. apagar e redefinir banco de dados remoto - heroku pg:reset DATABASE_URL --app [name of app]
  3. enviar dados locais para heroku - heroku pg:push [name of postgres dev db] DATABASE_URL --app [name of app]

OBSERVAÇÃO:se esse banco de dados tiver mais de 10 mil linhas, você também precisará atualizar para um nível básico de hobby no heroku

Atualizando Heroku para Hobby Tier Basic
  1. criar nova camada - `heroku addons:create heroku-postgresql:hobby-basic --app [nome do aplicativo]
  2. obtenha o novo URL do banco de dados - heroku pg:info
  3. ativar manutenção - heroku maintenance:on --app [name of app]
  4. copiar dados - heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  5. promover novo banco de dados - heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  6. desativar manutenção
  7. teste visitando o aplicativo heroku

Caso você tenha problemas ou casos extremos, aqui estão alguns recursos para ajudar.

Recursos:

  • https://pgloader.io
  • documentos de instalação do postgres
  • instalação do heroku new rails
  • informações do heroku cli
  • usando o cli heroku

database_sample.yml
default: &default
  adapter: postgresql
  encoding: unicode
  host: localhost
  port: 5432
  # For details on connection pooling, see Rails configuration guide
  # http://guides.rubyonrails.org/configuring.html#database-pooling
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000

development:
  <<: *default
  database: [name of app]_dev

test:
  <<: *default
  database: [name of app]_test

staging:
  <<: *default
  database: [name of app]

production:
  <<: *default
  database: [name of app]