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

Hvordan flytter jeg min eksisterende rails-app til heroku? (sqlite til postgres)

10 minutters flytning fra lokal SQLite til en Heroku Postgres

-- opdaterer din lokale udvikler til postgres undervejs --

Dette forudsætter, at du har en udviklingsdatabase i sqlite, og du vil flytte strukturen og dataene til heroku. Du vil først ændre dit lokale miljø til postgres og derefter flytte det hele op.

Hvorfor ændre sig? Du bør altid have dit udviklingsmiljø til at afspejle dit produktionsmiljø. Brug af Postgres er standard på heroku.

Du skal først installere og konfigurere Postgres lokalt med en bruger, der har dit brugernavn

Software nødvendig:postgresql, pgloader, heroku-cli

Trin

Flyt fra SQLite til Postgres på dit udviklermiljø

  1. installer heroku / pgloader / postgres, og sørg for at postgresql kører på dit system
  2. sikkerhedskopi sqlite - kopier development.sql til development_old.sql
  3. tilføj gem 'pg' til hovedafsnittet af din Gemfil
  4. pakkeinstallation
  5. opdater config/database.yml (se eksempel nedenfor)
  6. rake db:setup
  7. cd [applikationsrod]
  8. indlæs postgres db med data - pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
  9. fjern gem 'sqlite3'
  10. pakkeinstallation
  11. start server - rails server
  12. test ved at besøge app på localhost:3000

Konfigurer ny app på heroku

Følg disse instruktioner fra heroku

Flyt data til heroku

  1. find heroku db info - heroku pg:info
  2. slet og nulstil remote db - heroku pg:reset DATABASE_URL --app [name of app]
  3. skub lokale data til heroku - heroku pg:push [name of postgres dev db] DATABASE_URL --app [name of app]

BEMÆRK:hvis databasen har mere end 10.000 rækker, skal du også opgradere til et hobbybasisk niveau på heroku

Opgradering af Heroku til Hobby Tier Basic

  1. opret nyt niveau - `heroku addons:create heroku-postgresql:hobby-basic --app [navn på app]
  2. hent den nye database-url - heroku pg:info
  3. aktiver vedligeholdelse - heroku maintenance:on --app [name of app]
  4. kopiér data - heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  5. promover ny db - heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  6. deaktiver vedligeholdelse
  7. test ved at besøge heroku-appen

I tilfælde af at du støder på problemer eller spidssager, er her nogle ressourcer til at hjælpe.

Ressourcer:

  • https://pgloader.io
  • postgres installationsdokumenter
  • heroku nye skinner installeres
  • heroku cli info
  • ved at bruge heroku cli

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]


  1. MySQL Performance snydeark

  2. SQLite fælder og faldgruber

  3. Hvordan ændres mysql til mysqli?

  4. Sådan grupperer du en rapport i Access 2016