2016-06-09 11 views
0

Ich versuche, ein Werkzeug zu machen, das wird leben-kopieren Sie eine DB von einem RethinkDB-Host zum anderen, aber ich bin auf der Tatsache hängen, die ich nicht scheinen kann finde heraus, was eigentlich in jedem Index ist. Ich habe versucht,RethinkDB: Get Felder in Indizes anstelle von nur Index-Namen

r.db('db').table('table').index_list() 

und

r.db('db').table('table').info() 

Ich habe sogar versucht

r.db('db').table('table').index_list().info() 

Aber alle drei zurück nur die Namen der Indizes und nicht, welche Felder in ihnen. Dies macht es unmöglich, die Tabelle in der Zieldatenbank genau so wie die Quelle neu zu erstellen.

Was fehlt mir hier? Es muss einen Weg geben, dies zu tun, oder fehlt etwas von RethinkDB? Wenn ja, weiß jemand warum?

+1

gibt es einen bestimmten Grund, warum Sie würde die Replikation nicht nur zu analysieren, verwenden und die RethinkDB Instanzen in einem Cluster zu setzen? – dalanmiller

Antwort

0

Wie üblich bekomme ich nur Antworten von Leuten, die meine Frage nicht lesen oder Fragen beantworten wollen, die nicht gestellt wurden.

Die Lösung ist, die Daten von

r.db('db').table('table').index_status() 
0

Indizes werden anhand der Dokumente in der Tabelle berechnet. Wenn Sie alle Dokumente aus der ersten Tabelle (z. B. r.table.run()) lesen und alle in die zweite Tabelle einfügen, erstellen Sie alle Indizes neu, und Sie haben die Tabelle erfolgreich neu erstellt.

+0

Ja, klar, Schritt eins ist das Kopieren der Dokumente, dann Schritt zwei ist die Indizes zu erstellen, aber wie gesagt, gibt es keine Möglichkeit, die Namen der Felder, die die Indizes, nur die Namen der Indizes, so zu finden wie mache ich das? Wenn ich den Namen eines Index kenne, sagt "patient_id_type" nichts, das Feld könnte wörtlich "patient_id_type" sein oder es könnten zwei Felder sein, "patient_id" und "type", oder es könnten drei Felder sein, "patient" , "id", "type" ... Ich muss die Felder kennen, nicht den Namen des Indexes. –