He escrito un archivo mymodule.install que contiene una definición de esquema para crear una tabla en mi base de datos. Esta tabla contiene dos campos de datos. Los usuarios rellenarán estos campos cuando completen el contenido específico (por ejemplo: para especificar una fecha de publicación para una noticia). Ahora no utilicé el módulo Fecha contribuido a propósito, porque necesitaba que estos dos campos estuvieran en la misma fila en la tabla de la base de datos por otras razones.
Hook_schema define los dos campos de esta manera:
'pubblish_date' => array(
'description' => t('The pubblish date for the single news'),
'mysql_type' => 'datetime',
'not null' => FALSE,
),
'unpublish_date' => array(
'description' => t('The unpublish date for the single news'),
'mysql_type' => 'datetime',
'not null' => FALSE,
),
La tabla se crea correctamente en la base de datos, pero siempre recibo estos mensajes de consejos:
Campo news_board.pubblish_date: sin tipo de esquema para mysql type datetime. Campo news_board.unpublish_date: sin tipo de esquema para mysql type datetime. news_board.pubblish_date: sin tipo para el tipo de esquema: normal. Campo news_board.pubblish_date: sin tipo de esquema para tipo. news_board.unpublish_date: sin tipo para el tipo de esquema: normal. Campo news_board.unpublish_date: sin tipo de esquema para el tipo.
Me parece extraño porque enrojecí en la documentación para usar la especificación mysql_type para almacenar el formato de fecha y hora en la base de datos mysql.
Sé que Drupal admite marcas de tiempo nativas y si desea almacenar un formato de fecha diferente, debe usar definiciones específicas como mysql_type o pgsql_type de acuerdo con la base de datos que está usando.
En las discusiones encontré que muchas personas en línea usaban la definición de mysql_type y, por lo que vi, resolvieron el problema, entonces, ¿por qué no funciona para mí?
Muchas gracias.
•Field news_board.pubblish_date: no Schema type for mysql type datetime. •Field news_board.unpublish_date: no Schema type for mysql type datetime.
Si necesita usar un tipo de registro no incluido en la lista de tipos oficialmente admitidos, puede especificar un tipo para cada servidor de base de datos.
En este caso, puede omitir el parámetro de tipo, pero tenga en cuenta que su esquema no se cargará en backends que no tienen un tipo especificado. Una posible solución puede ser usar el tipo "texto" como alternativa. ( https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Database%21database.api.php/group/schemaapi/8.2.x )
'submit_date' => array( 'type' => 'varchar', 'mysql_type' => 'datet', )
fuente