gpt4 book ai didi

c# - Npgsql:不支持时间戳的旧浮点表示

转载 作者:行者123 更新时间:2023-11-29 12:26:25 26 4
gpt4 key购买 nike

我编写了一个基本脚本,可将数据从 PostgreSQL 数据库同步到另一个系统,该脚本在我的测试/开发环境中执行时没有问题,使用:

  • PostgreSQL 9.4
  • Npgsql dll 版本 3.0.3

在实际生产环境中运行脚本后,我们遇到了以下错误:

"Old floating point representation for timestamps not supported"

研究该问题后,我发现这与“PostgreSQL 的弃用编译时选项有关,该选项切换为某些日期/时间字段的浮点表示。Npgsql(当前)不支持此模式。”

Here is a link to the relevant source code .

在生产中,PostgreSQL 服务器运行的是 8.3 版本,由于内部原因,服务器管理员此时拒绝升级 PostgreSQL 服务器。 (当前的 Npgsql 版本不正式支持版本 9 之前的 PosgreSQL。doh!)

问题:

  • 有什么方法可以修改 PostgreSQL 8.3“integer_datetimes”配置设置无需完全重新安装应用程序或升级?
  • 或者,是否有任何方法可以将我的 Npgsql dll 降级到支持此配置设置的旧版本?
  • 如有必要,有什么替代 Npgsql 的建议吗?我正在考虑重构代码以使用 ADO.NET(但我不确定是否会推荐这样做)。

最佳答案

我对此不是百分百确定,但 Npgsql 2.2.7 应该能够与 PostgreSQL 遗留浮点格式一起正常工作,因为它使用文本传输来读取和写入值而不是二进制值。这应该允许您与旧数据库进行交互。

但是,强烈建议不要以任何方式继续使用 PostgreSQL 8.3 - 8.3 已于 2013 年 2 月结束...环境,它可能会很好地工作。

另请注意,虽然新版本(如 3.0.4)通常可以在 9.0 之前的 PostgreSQL 上运行 - 只是它们没有以任何方式进行测试,我们可能不会修复您可能会遇到的任何重要错误跑过去。

关于c# - Npgsql:不支持时间戳的旧浮点表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34274236/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com