10 minuten verplaatsen van lokale SQLite naar een Heroku Postgres
-- update je lokale ontwikkelaar onderweg naar postgres --
Dit veronderstelt dat je een ontwikkelingsdatabase in sqlite hebt en dat je de structuur en gegevens naar heroku wilt verplaatsen. Je gaat eerst je lokale omgeving wijzigen in postgres en daarna alles naar boven verplaatsen.
Waarom veranderen? Uw ontwikkelomgeving moet altijd een afspiegeling zijn van uw productieomgeving. Het gebruik van Postgres is de standaardinstelling voor heroku.
U moet Postgres eerst lokaal installeren en configureren met een gebruiker die uw gebruikersnaam heeft
Benodigde software:postgresql, pgloader, heroku-cli
Stappen
Verplaats van SQLite naar Postgres in uw ontwikkelomgeving
- installeer heroku / pgloader / postgres en zorg ervoor dat postgresql op uw systeem draait
- back-up sqlite - kopieer development.sql naar development_old.sql
- voeg
gem 'pg'
naar het hoofdgedeelte van je Gemfile - bundelinstallatie
- update config/database.yml (zie voorbeeld hieronder)
- rake db:setup
- cd [applicatie root]
- laad postgres db met gegevens -
pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
- verwijder
gem 'sqlite3'
- bundelinstallatie
- start server -
rails server
- test door de app te bezoeken op localhost:3000
Nieuwe app instellen op heroku
Volg deze instructies van heroku
Verplaats gegevens naar heroku
- vind heroku db-info -
heroku pg:info
- wis en reset externe db -
heroku pg:reset DATABASE_URL --app [name of app]
- push lokale gegevens naar heroku -
heroku pg:push [name of postgres dev db] DATABASE_URL --app [name of app]
OPMERKING:als die database meer dan 10.000 rijen heeft, moet je ook upgraden naar een hobby-basislaag op heroku
Heroku upgraden naar Hobby Tier Basic
- maak een nieuwe laag - `heroku addons:create heroku-postgresql:hobby-basic --app [naam van app]
- haal de nieuwe database-url -
heroku pg:info
- onderhoud inschakelen -
heroku maintenance:on --app [name of app]
- gegevens kopiëren -
heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- bevorder nieuwe db -
heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- onderhoud uitschakelen
- test door de heroku-app te bezoeken
In het geval dat u problemen of randgevallen tegenkomt, zijn hier enkele bronnen die u kunnen helpen.
Bronnen:
- https://pgloader.io
- postgres installatiedocumenten
- heroku nieuwe rails installeren
- held cli info
- de heroku-cli gebruiken
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]