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
- installieren Sie heroku / pgloader / postgres und stellen Sie sicher, dass postgresql auf Ihrem System läuft
- sqlite sichern - development.sql nach development_old.sql kopieren
- fügen Sie
gem 'pg'
hinzu zum Hauptabschnitt Ihres Gemfile - Bundle-Installation
- Aktualisiere config/database.yml (siehe Beispiel unten)
- rake db:setup
- cd [Anwendungsstammverzeichnis]
- Postgres-Datenbank mit Daten laden -
pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
- Entfernen Sie
gem 'sqlite3'
- Bundle-Installation
- Server starten -
rails server
- Test durch Aufrufen der App unter localhost:3000
Neue App auf Heroku einrichten
Befolgen Sie diese Anweisungen von heroku
Daten nach heroku verschieben
- heroku db info finden -
heroku pg:info
- entfernte Datenbank löschen und zurücksetzen -
heroku pg:reset DATABASE_URL --app [name of app]
- 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
- Neue Stufe erstellen - `heroku addons:create heroku-postgresql:hobby-basic --app [Name der App]
- erhalten Sie die neue Datenbank-URL -
heroku pg:info
- Wartung einschalten -
heroku maintenance:on --app [name of app]
- Daten kopieren -
heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- promote new db -
heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- Wartung deaktivieren
- 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]