it-swarm-ko.tech

Drupal 스키마 API가 MySQL 날짜 데이터 유형을 지원하지 않습니까?

기존 데이터베이스에서이 오류가 발생합니다.

mysql 유형 날짜에 대한 스키마 유형이 없습니다.

나는 약간의 조사를했고 스키마가 MySQL에서 날짜 유형을 지원하지 않는 것 같습니다. 당신은 내가 그것을 무엇으로 바꾸라고 제안합니까? 내 사이트에 손익 계산서와 대차 대조표를 표시하고 있으며 각 행에 대한 일종의 날짜 참조가 필요합니다 (그렇지 않으면 1999 년 대비 2009 년 수입을 계산할 수 없습니다).

다른 어떤 옵션을 사용할 수 있습니까?

2
Lostsoul

당신은 직접 정의 할 수 있습니다 , 살펴보세요 http://drupal.org/node/159605#comment-1674678 .

그러나 MySQL 만 사용/지원할 것이 확실한 경우에만이 작업을 수행해야합니다.

서로 다른 데이터베이스간에 날짜 데이터 유형을 사용하는 이식성은 거의 불가능합니다. Drupal 7은 처음에 날짜 유형이 정의되었지만 여러 데이터베이스 유형에서 일관되게 작동하도록 만들 방법이 없기 때문에 다시 제거되었습니다.

http://drupal.org/project/date 를보고 싶을 수도 있습니다. UNIX 타임 스탬프에 매핑 할 수없는 날짜를 사용할 수 있다고 확신합니다.

2
Berdir

메시지를 무시하는 것보다 더 나은 해결책을 찾았습니다. 나는 Schema를 행복하게함으로써 그것을 멈출 수 있었다.

Access에서 MySQL로 테이블을 가져온 다음이를 데이터 모듈 ( "구조> 데이터 테이블> 테이블 채택")에 채택했을 때 두 테이블 필드에 대해 동일한 메시지가 나타났습니다. 하나는 Access에서 "예/아니오"이고 다른 하나는 "날짜/시간"이었습니다. Access에서 가져 오면 해당 필드가 MySQL에서 각각 "bit (1)"및 "datetime"유형으로 변환되었습니다. Drupal의 데이터 스키마 에는 비트 유형이나 시간 (날짜/시간) 유형이 없으므로 스키마 모듈이 이러한 메시지를 발행했습니다.

내 솔루션은 이러한 테이블 필드를 Drupal의 스키마 및 내 테이블의 데이터와 일치하는 유형으로 변환하는 것이 었습니다. "bit (1)"필드를 "tinyint (1)"유형으로 변환하고 "datetime"필드를 "double"유형으로 변환했습니다. ( "datetime"데이터 유형은 날짜 및 시간을 나타내도록 지정된다는 점을 제외하면 "double"유형과 동일합니다.)

변환으로 인해 표의 데이터 값이 변경되지 않았는지 확인했습니다. datetime 필드의 경우 SQL 함수 "convert (<field name>, datetime)"을 사용하여 수행되었습니다. 확인에 성공했습니다. 이전 값과 이후 값이 동일했습니다.

그런 다음 "데이터 테이블"로 돌아가서 변환 된 데이터 유형이있는 테이블을 채택했습니다. Schema에서 더 이상 불만이 없습니다!

0
NewSites