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
- instale o heroku / pgloader / postgres e certifique-se de que o postgresql está sendo executado em seu sistema
- backup sqlite - copie development.sql para development_old.sql
- adicione
gem 'pg'
para a seção principal do seu Gemfile - instalação de pacote
- atualizar config/database.yml (veja o exemplo abaixo)
- rake db:configuração
- cd [raiz do aplicativo]
- carregar banco de dados postgres com dados -
pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
- remover
gem 'sqlite3'
- instalação de pacote
- iniciar servidor -
rails server
- teste visitando o aplicativo em localhost:3000
Configurar novo aplicativo no heroku
Siga estas instruções do heroku
Mover dados para heroku
- encontrar informações do heroku db -
heroku pg:info
- apagar e redefinir banco de dados remoto -
heroku pg:reset DATABASE_URL --app [name of app]
- 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
- criar nova camada - `heroku addons:create heroku-postgresql:hobby-basic --app [nome do aplicativo]
- obtenha o novo URL do banco de dados -
heroku pg:info
- ativar manutenção -
heroku maintenance:on --app [name of app]
- copiar dados -
heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- promover novo banco de dados -
heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- desativar manutenção
- 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]