gpt4 book ai didi

ruby-on-rails - Heroku Postgresql SET datestyle 到欧洲

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

我正在解决无法将数据复制到 Rails 中的 postgresql 的问题,因为日期格式与默认的 postgresql ISO MDY 不匹配。

在我的本地机器上,我只是将日期风格更改为欧洲风格,以便我的 DMY 数据正确匹配。

与往常一样,在 Heroku 生产服务器上执行此操作并不容易。使用下面的步骤,我尝试更改 datestyle,这有效,但它不会持续存在(如退出、返回并要求 postgres 向我显示 datestyle 所示)。

关于我如何坚持这一点的任何想法。所有研究都表明不要这样做并更改我的代码以将数据转换为 MDY,但我正在从默认为 DMY 的遗留系统中提取数百万行,并使用 postgresql 复制命令以最快的方式执行此操作。似乎只告诉 Postgresql 更改日期样式比修复其他所有内容更容易:/

$ heroku pg:psql    
app-name::CRIMSON=> SET datestyle TO 'european';
SET
app-name::CRIMSON=> SHOW datestyle;
DateStyle
-----------
ISO, DMY
(1 row)

app-name::CRIMSON-> \q
$ heroku pg:psql
---> Connecting to HEROKU_POSTGRESQL_CRIMSON_URL (DATABASE_URL)
psql (9.4.1, server 9.3.6)
SSL connection (protocol: TLSv1.2, cipher: jibberish, bits: 256, compression: off)
Type "help" for help.

app-name::CRIMSON=> SHOW datestyle;
DateStyle
-----------
ISO, MDY
(1 row)

最佳答案

Any ideas how I can persist this.

datestyle 是一个服务器设置(在 postgresql.conf 中),客户端 session 可以为单个事务或单个 session 覆盖(使用 set datestyle ...) .有两种方法可以在单个 session 之外保留更改。

  • 更改postgresql.conf 中的设置并重新启动服务器。 (在 Heroku 上对你不起作用。你肯定没有编辑 postgresql.conf 的权限,对吧?)
  • ALTER DATABASE your_database_name SET datestyle TO 'ISO, european';(应该适用于 Heroku。我将其设置为独立迁移。)

FWIW,默认值不是ISO MDY,而是ISO, MDY。 (两个值,用逗号分隔。)第一个是“输出格式规范”;第二个是“年/月/日排序的输入/输出规范”。 (参见 Client Connection Defaults)

关于ruby-on-rails - Heroku Postgresql SET datestyle 到欧洲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29089687/

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