Einen einzelnen Tisch zu Heroku schieben

8

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?

    
Aventuris 28.01.2015, 02:28
quelle

3 Antworten

10

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

%Vor%

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.

    
Simone Carletti 02.02.2015, 21:02
quelle
0

Ich habe ein Skript geschrieben, das DB url aus heroku extrahiert. Dann werden einzelne Tabellen aus der Produktion ausgegeben und auf development / localhost wiederhergestellt. Führen Sie es wie folgt aus:

%Vor%

Code:

%Vor%     
knagode 02.11.2016 10:45
quelle
-1

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.

    
JeffD23 04.02.2015 05:30
quelle