Ich kenne den Befehl heroku pg:push
, der eine ganze Datenbank an Heroku weiterleitet.
Nun, da ich mein Produkt lanciere, möchte ich nur eine bestimmte Tabelle hochschieben können, die lokal erfasste Informationen enthält, ohne vorhandene Tabellen (wie Benutzer) zu überschreiben.
Gibt es einen Befehl, der es mir ermöglicht, bestimmte Tabellen nur an heroku zu senden?
Ich schlage vor, die PostgreSQL-Funktionen zum Speichern / Wiederherstellen direkt mit pg_dump
und psql
Befehle.
Mit pg_dump
können Sie eine bestimmte Tabelle von Ihrer lokalen Datenbank ablegen
Dann nimm die Heroku PostgreSQL-Verbindungszeichenfolge aus den configs
%Vor%und stellen Sie die Tabelle in der entfernten Datenbank mithilfe der von Heroku abgerufenen Informationen wieder her.
%Vor% Sie müssen die Parameter -p
, -h
und -U
sowie den Namen der Datenbank anpassen. Das Passwort wird von psql
angezeigt.
Sie können auch das pg_restore
verwenden, um einen Dump zu filtern und den Tabelle, aber ich persönlich bevorzuge psql
.
Beachten Sie, dass Heroku die Verwendung von PostgreSQL-Tools in verschiedenen Dokumentationen empfiehlt, z. B. Importieren und Exportieren für große Daten oder immer dann, wenn die bereitgestellten CLI-Befehle bestimmte Fälle wie den in dieser Frage nicht abdecken.
Wenn ich das richtig verstanden habe, brauchen Sie nur eine einzige Datenbanktabelle, deren lokal erstellte Daten in Ihre Rails-Produktionsanwendung übertragen werden. Vielleicht ist das ein vereinfachter Ansatz, aber Sie könnten eine Migration für Ihre Tabelle erstellen und dann mit db/seeds.rb
füllen.
Nachdem Sie die Datei samen.rb gefüllt und den Repo an heroku übergeben haben:
%Vor%Wenn Ihre lokale Tabelle eine Menge Daten enthält und Sie Rails 4 verwenden, sollten Sie auch den Gems-Gems für das Gemüsemedium ausprobieren: Ссылка . Dadurch werden Ihre vorhandenen Datenbankdaten übernommen und dem Seed-Format zugeordnet.
Tags und Links database ruby-on-rails heroku deployment