【发布时间】:2019-12-31 12:09:54
【问题描述】:
我想在包含时间序列数据的特定表上使用TimescaleDB。我的问题是如何从实体框架核心设置时间序列并使特定表成为hyper table?
数据库:Postgress 版本 11 框架:Ef Core 2.2 方法:代码优先
【问题讨论】:
-
您是手动创建架构,还是让实体为您创建架构?如果你自己创建它,而Entity只是连接到数据库,那么你可以简单地执行
SELECT create_hypertable('table_name'...),Entity使用'table_name'不会有问题。如果实体创建您的数据库模式,那么您可以创建一个自定义数据库初始化程序,并在创建数据库后,执行原始查询SELECT create_hypertable... -
我使用模型手动创建我的方案,然后从那里进行迁移。我会看看数据库初始化程序,谢谢你的提示!
-
@TimonPost 知道如何在 ef 核心中执行此操作,因为它没有数据库初始化程序?
-
@psclkhoury 你应该有:1)你的模型中有一个日期时间字段。 2) 在 postgress db 中,您应该使用
CREATE EXTENSION timescaledb;SQL 命令安装 timescale 插件。 3) 在创建数据库时调用dbcontext.Database.ExecuteSqlCommand("SELECT create_hypertable('device_points', 'Datetime');");。
标签: postgresql ef-core-2.2 timescaledb