От MySQL к экспорту данных Mongo: как сохранить дату создания?

Я пытаюсь экспортировать данные таблицы MySQL в MongoDB, создавая набор операторов «Create» в Rails.

Моя проблема заключается в следующем: в моей исходной таблице у меня есть поля «create_at» и «updated_at», и я хотел бы сохранить исходные значения, даже когда я экспортирую данные в мой новый документ MongoDB. Но после того, как я создаю новую строку в Mongo, даже если я скажу ей установить "create_at" = [моя первоначальная дата], Mongo установит для нее текущую дату и время.

Как я могу избежать этого? Это моя модель MongoMapper:

class MongoFeedEvent
   include MongoMapper::Document

   key :event_type, String
   key :type_id, Integer
   key :data, String
   timestamps!

end

mysql,ruby-on-rails,mongodb,

1

Ответов: 1


3 принят

Возможно, вам лучше сбросить таблицу MySQL как JSON, а затем использовать mongoimportдля импорта этот JSON; это будет намного быстрее, чем делать это построчно через MongoMapper, и это полностью обойдёт вашу проблему как счастливый побочный эффект.

Существует драгоценный камень, который поможет вам вывести свою базу данных MySQL в JSON с именем mysql2xxxx :

Как экспортировать базу данных MySQL в JSON?

Я не использовал его, но автор, кажется, зависает на SO, так что вы должны иметь возможность получить помощь в случае необходимости. Или напишите быстрый одноразовый скрипт, чтобы выгрузить ваши данные в JSON.

Получив JSON, вы можете импортировать его mongoimportи перейти к более интересным проблемам.

Кроме того, mongoimportпонимает CSV и mysqldumpможет писать CSV напрямую:

Команда mysqldumpтакже может генерировать выходные данные в формате CSV, другом тексте с разделителями или в формате XML.

Поэтому полностью пропустите MongoMapper и построчное копирование для передачи данных. Сохраните ваши данные в CSV или JSON, а затем импортируйте их сразу.

MySQL, рубин-на-рельсы, MongoDB,
Похожие вопросы