Когда я запустил drupal_write_record
, он всегда возвращается к false. Я отлаживаю функцию и вижу, что функция drupal_get_schema
, найденная внутри функции drupal_write_record
, возвращает false. Более того, если я отладки в drupal_get_schema
функции и посмотреть наdrupal_write_record in drupal 6 return false
$schema = $cached->data;
Моя новая таблица не входит в $schema
массив. Я попытался очистить кеш, переустановить модуль и запустить update.php, но ничего не помогает. В случае, если это помогает, я также включил файл .install я написал, что добавляет новую таблицу в базу данных:
<?php
// $Id: my_module.install,v 1.00.0.1 2012/10/21 00:23:32 Exp $
/**
* Implementation of hook_schema().
*/
function my_module_schema() {
$schema = array();
$schema['my_module_pending_inserts'] = array(
'fields' => array(
'id' => array(
'description' => 'primary key',
'type' => 'serial',
'size' => 'tiny',
'not null' => TRUE,
),
'json_array_data' => array(
'type' => 'text',
'not null' => TRUE,
),
'successfully_run' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
),
'date_created' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
),
'date_updated' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
)
),
'primary key' => array('id'),
);
return $schema;
}
function jira_reporting_install() {
// Create tables.
drupal_install_schema('my_module_pending_inserts');
}
function my_module_uninstall() {
// Remove tables.
drupal_uninstall_schema('my_module_pending_inserts');
// Delete variables
variable_del('my_module_variable1');
variable_del('my_module_variable2');
variable_del('my_module_variable3');
}
function my_module_update_2() {
$up = array();
$tbl = array(
'fields' => array(
'id' => array(
'type' => 'serial', 'not null' => TRUE
),
'json_array_data' => array(
'type' => 'varchar',
'length' => 250,
'not null' => True
),
'successfully_run' => array(
'type' => 'int'
),
'date_created' => array(
'type' => 'int'
),
'date_updated' => array(
'type' => 'int'
),
),
'primary key' => array('id'),
);
db_create_table(&$up, 'my_module_pending_inserts', $tbl);
return $up;
}
путь удаления сделать вы имеете в виду отключить, а затем удалить? попробуйте некоторые отладочные символы в hook_install –
Здравствуйте, Да, когда я деинсталлирую, я отключу, а затем удалю. Я попытался выполнить отладку в hook_install. $ schema = drupal_get_schema_unprocessed ($ module); также возвращается как пустой массив – jason