sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur flyttar jag min befintliga rails-app till heroku? (sqlite till postgres)

10 minuter flytta från lokal SQLite till en Heroku Postgres

-- uppdaterar din lokala utvecklare till postgres längs vägen --

Detta förutsätter att du har en utvecklingsdatabas i sqlite och du vill flytta strukturen och data till heroku. Du kommer först att ändra din lokala miljö till postgres och sedan flytta upp det hela.

Varför ändra? Du bör alltid ha din utvecklingsmiljö spegla din produktionsmiljö. Att använda Postgres är standard på heroku.

Du måste först installera och konfigurera Postgres lokalt med en användare som har ditt användarnamn

Programvara som behövs:postgresql, pgloader, heroku-cli

Steg

Flytta från SQLite till Postgres på din utvecklarmiljö

  1. installera heroku / pgloader / postgres och se till att postgresql körs på ditt system
  2. säkerhetskopiering av sqlite - kopiera development.sql till development_old.sql
  3. lägg till gem 'pg' till huvuddelen av din Gemfil
  4. paketinstallation
  5. uppdatera config/database.yml (se exempel nedan)
  6. rake db:setup
  7. cd [applikationsrot]
  8. ladda postgres db med data - pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
  9. ta bort gem 'sqlite3'
  10. paketinstallation
  11. startserver - rails server
  12. testa genom att besöka appen på localhost:3000

Konfigurera ny app på heroku

Följ dessa instruktioner från heroku

Flytta data till heroku

  1. hitta heroku db info - heroku pg:info
  2. radera och återställa fjärrdb - heroku pg:reset DATABASE_URL --app [name of app]
  3. skjuta lokal data till heroku - heroku pg:push [name of postgres dev db] DATABASE_URL --app [name of app]

OBS:om databasen har fler än 10 000 rader måste du också uppgradera till en hobbybasnivå på heroku

Uppgraderar Heroku till Hobby Tier Basic

  1. skapa ny nivå - `heroku addons:create heroku-postgresql:hobby-basic --app [namn på app]
  2. skaffa den nya databasens webbadress - heroku pg:info
  3. aktivera underhåll - heroku maintenance:on --app [name of app]
  4. kopiera data - heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  5. marknadsför ny db - heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  6. stänga av underhåll
  7. testa genom att besöka heroku-appen

Om du stöter på problem eller problem som kan vara fördelaktiga, här är några resurser som kan hjälpa dig.

Resurser:

  • https://pgloader.io
  • postgres installationsdokument
  • heroku nya rails installeras
  • heroku cli info
  • med 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. Ett annat sätt att se automatiska uppdateringar av statistik

  2. Hur man kör Opatch i icke interaktiv form

  3. Hur förhindrar man att SUB tolkar ett frågetecken som en platshållare?

  4. Hur BIN() fungerar i MariaDB