【问题标题】:How to install TimescaleDB extension for postgress database with entity framework core如何使用实体框架核心为 postgres 数据库安装 TimescaleDB 扩展
【发布时间】: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


【解决方案1】:

这是代码优先 EF 的解决方案。这很简单。

1) 在要使用 timescale db 扩展的表模型中添加一个日期时间字段。

2) 为 Postgres 安装时间刻度插件。

CREATE EXTENSION timescaledb;

3) 在数据库播种器或初始化程序中执行以下 SQL。

dbcontext.Database.ExecuteSqlCommand("SELECT create_hypertable('table_name', 'datetime_field_name');");

datetime_field_name 是 timescale db 的必填日期时间字段(参见 1))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多