Рельсы 2.3.10 переносятся на рельсы 3.2.18. Он полностью вращается вокруг полнотекстовой индексации. Версия rails 2 работала на postgresql 9.0.4, а мигрированная версия — на 9.3.5.
Таблицы данных перенесены на новые версии rails 3 без ошибок. У меня есть пара моделей, которые нуждаются в доработке, но они НЕ являются объектами, связанными с этим вопросом/кейсами.
rake ts:configure
генерирует файл sphinx.conf. Оно выглядит немного иначе, чем нативное приложение rails3 sphinx/thinking-sphinx.
source filodiretto_core_0
{
type = pgsql
sql_host = localhost
sql_user = jerdvo
sql_pass =
sql_db = fna_development
sql_query_pre = SET TIME ZONE UTC
sql_query = SELECT "filodirettos"."id" * 24 + 0 AS "id", "filodirettos"."titolo" AS "titolo", "filodirettos"."domanda" AS "domanda", "filodirettos"."data" AS "data", "filodirettos"."risposta" AS "risposta", "filodirettos"."id" AS "sphinx_internal_id", 'Filodiretto' AS "sphinx_internal_class", 0 AS "sphinx_deleted" FROM "filodirettos" WHERE ("filodirettos"."id" BETWEEN $start AND $end) GROUP BY "filodirettos"."id", "filodirettos"."titolo", "filodirettos"."domanda", "filodirettos"."data", "filodirettos"."risposta", "filodirettos"."id"
sql_query_range = SELECT COALESCE(MIN("filodirettos"."id"), 1), COALESCE(MAX("filodirettos"."id"), 1) FROM "filodirettos"
sql_attr_uint = sphinx_internal_id
sql_attr_uint = sphinx_deleted
sql_attr_string = sphinx_internal_class
sql_query_info = SELECT "filodirettos".* FROM "filodirettos" WHERE ("filodirettos"."id" = ($id - 0) / 24)
}
index filodiretto_core
{
type = plain
path = /Users/jerdvo/r/fna/shared/sphinx/filodiretto_core
docinfo = extern
charset_type = utf-8
min_infix_len = 2
enable_star = 1
source = filodiretto_core_0
}
Однако, когда я запускаю
rake ts:index
все индексы не работают
indexing index 'filodiretto_core'...
ERROR: source 'filodiretto_core_0': unknown type 'pgsql'; skipping.
ERROR: index 'filodiretto_core': failed to configure some of the sources, will not index.
[...] skipping non-plain index 'filodiretto'...
В относительном файле _index.rb указано
ThinkingSphinx::Index.define :filodiretto, :with => :active_record do
indexes titolo
indexes domanda
indexes data
indexes risposta
end
Я столкнулся с файлом pg_dump с собственным приложением rails3. Единственное отличие находится в верхней части файла, версия из rails 2 (и postgres 9.0.4) указывает (в начале)
--
-- Name: crc32(text); Type: FUNCTION; Schema: public; Owner: jerdvo
--
CREATE FUNCTION crc32(word text) RETURNS bigint
LANGUAGE plpgsql IMMUTABLE
AS $$
DECLARE tmp bigint;
DECLARE i int;
DECLARE j int;
DECLARE byte_length int;
DECLARE word_array bytea;
Я не знаю, откуда эта ошибка «pgsql».