Я использую AR с Rails 3.0.9 и SQLite 3.6.22 (Ubuntu Lucid Lynx). Я добавил виртуальную таблицу FTS3 в базу данных, которая ранее не использовала FTS. Я не знаю, как использовать AR-вызовы (например, create_table) для создания виртуальной таблицы, которую я хочу. Поэтому я создаю и заполняю таблицу, используя сырой SQL. Я начал с использования миграции. Сначала это работало хорошо, но оказалось, что schema.rb был неполным. Каким-то образом AR не может сбросить таблицы FTS в схему. Я не смог решить эту проблему.
Это означает, например, что когда я запускаю мой набор тестов RSpec, таблица FTS не находится в базе данных. Я обошел это, добавив вспомогательный метод для заполнения таблицы FTS (который занимает всего несколько секунд), и добавил его в перед блоком для соответствующих примеров RSpec. У меня также должна быть отдельная задача заполнения базы данных для построения таблицы FTS после заполнения.
Текущее расположение на самом деле работает нормально, поскольку создание виртуальной таблицы на лету занимает так мало времени. Но я уверен, что я должен быть в состоянии построить таблицу FTS, используя вызовы AR напрямую, что, я полагаю, позволит избежать другой проблемы (таблицы не выгружаются в schema.rb). Есть ли документация по настройке FTS с SQLite через AR? Я не смог найти ни одного. Спасибо.