PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come faccio a spostare la mia app Rails esistente su heroku? (da sqlite a postgres)

10 Minuti Passa da SQLite locale a Heroku Postgres

-- aggiorna il tuo sviluppo locale a postgres lungo il percorso --

Questo presuppone che tu abbia un database di sviluppo in sqlite e desideri spostare la struttura e i dati su heroku. Prima cambierai il tuo ambiente locale in postgres, quindi sposterai tutto in alto.

Perché cambiare? Dovresti sempre fare in modo che il tuo ambiente di sviluppo rispecchi il tuo ambiente di produzione. L'uso di Postgres è l'impostazione predefinita su heroku.

Dovrai prima installare e configurare Postgres in locale con un utente che ha il tuo nome utente

Software necessario:postgresql, pgloader, heroku-cli

Passaggi

Sposta da SQLite a Postgres nel tuo ambiente di sviluppo

  1. installa heroku / pgloader / postgres e assicurati che postgresql sia in esecuzione sul tuo sistema
  2. backup di sqlite:copia development.sql in development_old.sql
  3. aggiungi gem 'pg' alla sezione principale del tuo Gemfile
  4. installazione in bundle
  5. aggiorna config/database.yml (vedi esempio sotto)
  6. rake db:setup
  7. cd [radice dell'applicazione]
  8. carica postgres db con i dati - pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
  9. rimuovi gem 'sqlite3'
  10. installazione in bundle
  11. server di avvio - rails server
  12. prova visitando l'app su localhost:3000

Configura una nuova app su heroku

Segui queste istruzioni di heroku

Sposta i dati in heroku

  1. trova informazioni sul db di heroku - heroku pg:info
  2. cancella e ripristina il db remoto - heroku pg:reset DATABASE_URL --app [name of app]
  3. push dei dati locali in heroku - heroku pg:push [name of postgres dev db] DATABASE_URL --app [name of app]

NOTA:se il database ha più di 10.000 righe, dovrai anche eseguire l'upgrade a un livello base hobby su heroku

Aggiornamento di Heroku al livello Hobby Base

  1. crea nuovo livello - `componenti aggiuntivi di heroku:create heroku-postgresql:hobby-basic --app [nome dell'app]
  2. ottieni il nuovo URL del database - heroku pg:info
  3. attiva manutenzione - heroku maintenance:on --app [name of app]
  4. copia dati - heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  5. promozione nuovo db - heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  6. disattiva la manutenzione
  7. prova visitando l'app heroku

In caso di problemi o casi limite, ecco alcune risorse per aiutarti.

Risorse:

  • https://pgloader.io
  • Documenti di installazione di Postgres
  • Installazione dei nuovi binari di Heroku
  • informazioni sul cli di heroku
  • usando il 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]