2016-06-09 2 views
0

Я пытаюсь создать инструмент, который будет копировать БД из одного узла RethinkDB в другой, но я не согласен с тем, что я не могу показаться узнайте, что есть на самом деле в каждом индексе. Я попыталсяRethinkDB: Получите поля внутри индексов, а не только имена индексов

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

и

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

Я даже попытался

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

Но все три только вернулись имена индексов, а не то, что поля находятся в них. Это делает невозможным воссоздание таблицы в целевом БД точно так же, как и источник.

Что мне здесь не хватает? Должен быть способ сделать это, или это просто что-то отсутствует в RethinkDB? Если да, то кто-нибудь знает, почему?

+1

есть конкретная причина, вы не просто использовать репликацию и положить экземпляры RethinkDB в кластере? – dalanmiller

ответ

0

Как обычно, я получаю ответы только от людей, которые не читают мой вопрос или кто хочет отвечать на вопросы, которые не были заданы.

Решение для анализа данных из

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

Индексы рассчитываются из документов в таблице. Если вы прочитаете все документы из первой таблицы (например, r.table.run()) и вставьте их во вторую таблицу, затем заново создайте все индексы, вы успешно заново создадите таблицу.

+0

Да, ясно, что первый шаг - это копирование документов, а второй шаг - создание индексов, но, как я уже сказал, нет способа узнать имена полей, которые создают индексы, только имена индексов, поэтому как это сделать? Зная имя индекса, «patient_id_type» ничего мне не говорит, поле может быть буквально «patient_id_type», или это могут быть два поля: «patient_id» и «type», или это могут быть три поля: «пациент», , "id", "type" ... Мне нужно знать поля, а не имя индекса. –