【发布时间】:2020-03-27 04:35:37
【问题描述】:
我有一个 Rails 4.2.11.1 应用程序,我正在尝试与 TimescaleDB 数据库一起使用。
我已经解决了大部分问题(使用 composite_primary_keys gem 来绕过 Timescale 的唯一索引应始终包含表的时间戳列的限制)。
这使我的应用程序功能齐全,但每当我尝试写入 Timescale 表时,我的测试套件都会失败,并出现以下错误:
PG::FeatureNotSupported: ERROR: invalid INSERT on the root table of hypertable "events"
HINT: Make sure the TimescaleDB extension has been preloaded.
据我所知,Rails 没有在测试数据库中启用扩展;这适用于我正在使用的任何模式转储模式(:sql 或 :ruby)。用bundle exec rails dbconsole手动连接数据库,可以看到扩展开启了。
我不确定这是否是我的代码、Timescale 或 Rails 的错误,但它阻止了我发布此更改。
我希望其他人以前遇到过这种情况并能够提供帮助!
【问题讨论】:
-
你能看到从 Ruby 到 PostgreSQL 的连接字符串,看看它连接的是哪个数据库?您是否尝试过从另一个工具连接并尝试插入 TimescaleDB 表?你能看到实际的 INSERT 语句吗?您也可以询问 Slack 的 TimescaleDB 社区是否有人解决了您的问题。
-
您是否创建了一个迁移来启用扩展程序,以便它在
schema.rb中列出? -
@max 是的,已经完成了。
-
@k_rus 我有一些 INSERT 语句的转储,是的。还有连接字符串。我加入了 TimescaleDB Slack,看看那里有没有人可以提供帮助。
-
@SteveHill 你明白了吗?
标签: ruby-on-rails rspec timescaledb