I’ve got a legacy database that was running on CakePHP and MySQL that’s being migrated to a new Rails App on a Postgres database with a wildly different structure. I have one small piece of migration that’s giving me fits, and I’m hoping someone here can point me in the right direction.
Essentially, there are date columns (of MySQL type Date) that contain malformed dates. Most of the malformed dates are of the form '2012-08-00', and the MySQL2 adapter chokes on these (as obviously 00 is not a valid day of the month). If I could just get them into the model I could do the necessary conversions to turn them into the much more complete new format. Even getting them out of the Database as a string would be sufficient, I could do the necessary manipulation that way.
I get the following error:
Mysql2::Error: Invalid date: 2011-12-00
whenever I try to select one of the invalid dates from the system. There are 3800 rows in the table, I would estimate that about half are so attempting to go through and modify them all by hand would take a great deal (but not inordinate, if that’s the way it needs to be done) amount of time.
Any suggestions would be highly appreciated!
Something like this should work (not tested):