PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie übertrage ich meine bestehende Rails-App auf heroku? (sqlite zu postgres)

10-Minuten-Wechsel von lokalem SQLite zu Heroku Postgres

-- aktualisiert Ihren lokalen Entwickler unterwegs auf postgres --

Dies setzt voraus, dass Sie eine Entwicklungsdatenbank in SQLite haben und die Struktur und Daten nach heroku verschieben möchten. Sie werden zuerst Ihre lokale Umgebung auf postgres umstellen und dann alles nach oben verschieben.

Warum ändern? Ihre Entwicklungsumgebung sollte immer Ihre Produktionsumgebung widerspiegeln. Die Verwendung von Postgres ist die Standardeinstellung für heroku.

Sie müssen Postgres zuerst lokal mit einem Benutzer installieren und konfigurieren, der Ihren Benutzernamen hat

Erforderliche Software:postgresql, pgloader, heroku-cli

Schritte

Wechseln Sie in Ihrer Entwicklungsumgebung von SQLite zu Postgres

  1. installieren Sie heroku / pgloader / postgres und stellen Sie sicher, dass postgresql auf Ihrem System läuft
  2. sqlite sichern - development.sql nach development_old.sql kopieren
  3. fügen Sie gem 'pg' hinzu zum Hauptabschnitt Ihres Gemfile
  4. Bundle-Installation
  5. Aktualisiere config/database.yml (siehe Beispiel unten)
  6. rake db:setup
  7. cd [Anwendungsstammverzeichnis]
  8. Postgres-Datenbank mit Daten laden - pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
  9. Entfernen Sie gem 'sqlite3'
  10. Bundle-Installation
  11. Server starten - rails server
  12. Test durch Aufrufen der App unter localhost:3000

Neue App auf Heroku einrichten

Befolgen Sie diese Anweisungen von heroku

Daten nach heroku verschieben

  1. heroku db info finden - heroku pg:info
  2. entfernte Datenbank löschen und zurücksetzen - heroku pg:reset DATABASE_URL --app [name of app]
  3. Lokale Daten an Heroku übertragen - heroku pg:push [name of postgres dev db] DATABASE_URL --app [name of app]

HINWEIS:Wenn diese Datenbank mehr als 10.000 Zeilen enthält, müssen Sie auch ein Upgrade auf eine Hobby-Basisstufe auf heroku durchführen

Upgrade von Heroku auf Hobby Tier Basic

  1. Neue Stufe erstellen - `heroku addons:create heroku-postgresql:hobby-basic --app [Name der App]
  2. erhalten Sie die neue Datenbank-URL - heroku pg:info
  3. Wartung einschalten - heroku maintenance:on --app [name of app]
  4. Daten kopieren - heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  5. promote new db - heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  6. Wartung deaktivieren
  7. durch Besuch der Heroku-App testen

Falls Sie auf Probleme oder Grenzfälle stoßen, finden Sie hier einige hilfreiche Ressourcen.

Ressourcen:

  • https://pgloader.io
  • Postgres-Installationsdokumentation
  • heroku new rails installieren
  • heroku CLI-Info
  • unter Verwendung der 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]