AppleSillicon 向けの ColdFusion が 2023 しかないやんけ! と半ばキレながら環境作っていたら、特定の処理で 0000-00-00 00:00:00 を変換できない、という例外が出るようになってしまった。
調べた所、 JDBC の仕様変更っぽい? ということがわかった。
なにはともかく、 -Dcoldfusion.jdbc.mysql.datetime.str=true
を JVM 引数に指定して、あとは ColdFusion 2021/2023 であれば Update を最新まで適応しておけ、という話。
だったんだけど、対応しても問題が解決しなかった。
その後、他の作業もあって放置していたんだけど、社内向けにアナウンスが出て以下の URL が送られてきた。
ヴォッ、なんか指定する値が違う……となったのだった。
20230130追記
CF-4211276 のトラッカーは以下が対応のようだった。すまん!
-Dcoldfusion.jdbc.mysql.datetime.str=true
を指定すれば良い。 ただこれも治らなかった。
ちなみに serverTimezone=JST
指定しているとエラーが出るパターンがあったので、外しておくほうがよさそう (MySQL 側にタイムゾーン設定を投入したほうがよさそう)。
12factor app だとサーバは全部 UTC にしてアプリケーション側でタイムゾーン変換しろ、みたいなのだっけか? まあよくわからん。