Использование базы данных в памяти в геме - PullRequest
0 голосов
/ 06 марта 2012

Я пишу гем, который выполняет сложный анализ / компоновку файла plist.

Я подумал, что для этого имеет смысл использовать интерфейс ActiveRecord и создавать «структуры» в качестве базы данных в памяти.

Самоцвет отлично работает сам по себе. Тем не менее, я хотел бы иметь возможность включить его в проект Rails. Проблема в том, что мой gem вызывает Install_conneciton в ActiveRecord :: Base, который убивает все предыдущие соединения, которые было у приложения Rails.

Это кажется возможным, потому что в ActiveRecord :: Base есть раздел под названием: Подключение к нескольким базам данных в разных моделях

Это подразумевает, что вы можете создавать подклассы из ActiveRecord :: Base и вызывать установление соединения. Проблема в том, что вы не можете определить свою схему, потому что ActiveRecord :: Schema.define использует соединение, установленное в настоящее время на Base.

Я думаю, что единственный способ сделать это - встроить таблицы в приложение Rails, в которое входит гем. Я бы предпочел не идти по этому пути, если смогу помочь. Есть идеи?

Вы можете просмотреть файл установки базы данных для моего драгоценного камня здесь , если я не прояснил себя.

Большое спасибо

1 Ответ

0 голосов
/ 07 марта 2012

Спасибо за комментарии.Эндрю Маршалл: В этом случае мои таблицы являются временными и предназначены только для использования в оперативной памяти.

Я нашел решение, которое может пригодиться всем, кто сталкивается с этим: Переключение соединения на ActiveRecord:: Схема

Еще раз спасибо.

...