sql >> Database >  >> RDS >> PostgreSQL

Hoe verplaats ik mijn bestaande rails-app naar Heroku? (sqlite naar postgres)

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

  1. installeer heroku / pgloader / postgres en zorg ervoor dat postgresql op uw systeem draait
  2. back-up sqlite - kopieer development.sql naar development_old.sql
  3. voeg gem 'pg' naar het hoofdgedeelte van je Gemfile
  4. bundelinstallatie
  5. update config/database.yml (zie voorbeeld hieronder)
  6. rake db:setup
  7. cd [applicatie root]
  8. laad postgres db met gegevens - pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
  9. verwijder gem 'sqlite3'
  10. bundelinstallatie
  11. start server - rails server
  12. test door de app te bezoeken op localhost:3000

Nieuwe app instellen op heroku

Volg deze instructies van heroku

Verplaats gegevens naar heroku

  1. vind heroku db-info - heroku pg:info
  2. wis en reset externe db - heroku pg:reset DATABASE_URL --app [name of app]
  3. 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

  1. maak een nieuwe laag - `heroku addons:create heroku-postgresql:hobby-basic --app [naam van app]
  2. haal de nieuwe database-url - heroku pg:info
  3. onderhoud inschakelen - heroku maintenance:on --app [name of app]
  4. gegevens kopiëren - heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  5. bevorder nieuwe db - heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  6. onderhoud uitschakelen
  7. 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]


  1. Een getal opmaken als valuta in Oracle

  2. Valse externe sleutelbeperking mislukt

  3. Het proces van synchronisatie van SQL Server-databaseschema's automatiseren

  4. UniVerse-tips