我还是 Ror 小白,跟着 教程摸索中 ,一上来就要 自定义一个 ActiveRecord adapter ,实在超出能力范围了。
是这样子的。我需要连接到一个定制版的 pg 数据库,但是这个数据库的某些系统表名字被 改了,pg_
被替换成了别的字符串。
所以 ActiveRecord 连接的时候就报错了:
PG::UndefinedTable: ERROR: relation "pg_type" does not exist
LINE 2: FROM pg_type as t
^
: SELECT t.oid, t.typname, t.typelem, t.typdelim, t.typinput, r.rngsubtype, t.typtype, t.typbasetype
FROM pg_type as t
LEFT JOIN pg_range as r ON oid = rngtypid
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "pg_type" does not exist
LINE 2: FROM pg_type as t
^
: SELECT t.oid, t.typname, t.typelem, t.typdelim, t.typinput, r.rngsubtype, t.typtype, t.typbasetype
FROM pg_type as t
LEFT JOIN pg_range as r ON oid = rngtypid
数据库因为某些原因是没法换的 (否则我就用 pg 了), 如果还想用 ORM, 就必须把 adapter 换掉了. 我现在找到了 activerecord 里面的 connection_adapter 目录,但 不知道 怎么才能创建一个 新的 Adapter ,以及怎么注册到 activeRecord 里面。