【发布时间】:2012-08-01 21:02:27
【问题描述】:
我有一个在 CakePHP 和 MySQL 上运行的旧数据库,它正在迁移到 Postgres 数据库上的新 Rails 应用程序,该数据库具有完全不同的结构。我有一小段迁移让我很不舒服,我希望这里的人能指出我正确的方向。
本质上,有一些日期列(MySQL 类型的 Date)包含格式错误的日期。大多数格式错误的日期都是'2012-08-00' 的形式,MySQL2 适配器会阻塞这些日期(显然 00 不是一个月中的有效日期)。如果我可以将它们放入模型中,我可以进行必要的转换,将它们变成更完整的新格式。即使将它们作为字符串从数据库中取出就足够了,我可以通过这种方式进行必要的操作。
我收到以下错误:
Mysql2::Error: Invalid date: 2011-12-00
每当我尝试从系统中选择一个无效日期时。表中有 3800 行,我估计大约有一半的人试图手动完成并修改它们会花费大量时间(但并非过度,如果需要这样做的话)。
任何建议将不胜感激!
【问题讨论】:
-
我只是在 MySQL 中使用 REPLACE 将 '-00' 大量替换为 '-01' (不确定您是否可以在 DATE 字段上执行此操作,但应该
-
@AnthonyAlberto,我会考虑是否可以做到这一点。也许使用正则表达式。
标签: mysql ruby-on-rails activerecord