【发布时间】:2014-08-13 16:05:52
【问题描述】:
rails 2.3.10 正在迁移到 rails 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
我遇到了一个带有本机 rails3 应用程序的 pg_dump 文件。唯一的区别是在文件的顶部,来自 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' 错误是从哪里来的。
【问题讨论】:
标签: ruby-on-rails-3.2 sphinx thinking-sphinx ruby-on-rails-2 postgresql-9.3