2012-08-01 4 views
0

CakePHP 및 MySQL에서 실행중인 레거시 데이터베이스가 있습니다.이 레거시 데이터베이스는 크게 다른 구조의 Postgres 데이터베이스에서 새로운 Rails App으로 마이그레이션됩니다. 나에게는 맞는 작은 조각이있다. 나는 여기 누군가가 나를 올바른 방향으로 향하게 할 수 있기를 바라고있다.활성 레코드 및 마이그레이션 된 잘못된 날짜

기본적으로 잘못된 날짜가 포함 된 날짜 열 (날짜는 MySQL 형식 임)이 있습니다. 잘못된 형식의 날짜는 대부분 '2012-08-00'이고, MySQL2 어댑터는 이것들에 대해 질식합니다 (00은 유효한 날짜가 아닙니다). 모델에 넣을 수 있다면 훨씬 더 완전한 새로운 형식으로 변환하기 위해 필요한 변환을 할 수 있습니다. 문자열로 데이터베이스를 가져 오는 것만으로도 충분할 것입니다. 그렇게 조작 할 수는 있습니다.

나는 다음과 같은 오류가 발생합니다 : 나는 시스템에서 잘못된 날짜 중 하나를 선택하려고 할 때마다

Mysql2::Error: Invalid date: 2011-12-00

. 테이블에 3800 개의 행이 있습니다. 절반 정도가 손으로 직접 수정하려고 시도 할 때 많은 양의 시간이 걸릴 것이라고 예상 할 수 있습니다 (과도하지는 않습니다.

모든 의견을 보내 주시면 감사하겠습니다. 이 같은

+0

난 그냥 대량 대체 할 것 '-00'에서 '-01'의 MySQL에 (확실하지 REPLACE 사용하여 당신이 날짜에 그것을 할 수 있습니다 필드가 필요하지만 –

+0

@AnthonyAlberto, 내가 할 수 있는지 살펴 보겠습니다. 어쩌면 정규 표현식을 사용하는 것일 수도 있습니다. – EricBoersma

답변

1

뭔가 일 (테스트하지)해야합니다

update [table] set [field] = DATE_ADD([field],INTERVAL 1 day) where day([field]) = '0' 
+0

밤의 수면과 다른 접근 방식으로 다른 답변을 이끌어 냈습니다. 그러나 나중에 확인해 보았습니다. 도움을 주셔서 감사합니다 – EricBoersma

+0

솔루션을 기다리는 데 걸리는 시간은 너무 힘들어요 ... :) – tweak2