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ø
- installer heroku / pgloader / postgres, og sørg for at postgresql kører på dit system
- sikkerhedskopi sqlite - kopier development.sql til development_old.sql
- tilføj
gem 'pg'
til hovedafsnittet af din Gemfil - pakkeinstallation
- opdater config/database.yml (se eksempel nedenfor)
- rake db:setup
- cd [applikationsrod]
- indlæs postgres db med data -
pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
- fjern
gem 'sqlite3'
- pakkeinstallation
- start server -
rails server
- test ved at besøge app på localhost:3000
Konfigurer ny app på heroku
Følg disse instruktioner fra heroku
Flyt data til heroku
- find heroku db info -
heroku pg:info
- slet og nulstil remote db -
heroku pg:reset DATABASE_URL --app [name of app]
- 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
- opret nyt niveau - `heroku addons:create heroku-postgresql:hobby-basic --app [navn på app]
- hent den nye database-url -
heroku pg:info
- aktiver vedligeholdelse -
heroku maintenance:on --app [name of app]
- kopiér data -
heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- promover ny db -
heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- deaktiver vedligeholdelse
- 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]