function security_questions_update_6202 in Security Questions 6.2
Convert the schema to support the new API.
File
- ./
security_questions.install, line 215 - Install file for security_questions.
Code
function security_questions_update_6202() {
$ret = array();
// Serial fields must be keys in MySQL, so need to add a temporary index on
// {security_questions}.security_question_id before we can change it.
db_add_index($ret, 'security_questions', 'temp', array(
'security_question_id',
));
// Convert the questions table.
db_drop_primary_key($ret, 'security_questions');
db_change_field($ret, 'security_questions', 'security_question_id', 'sqid', array(
'description' => 'The security question ID',
'type' => 'serial',
), array(
'primary key' => array(
'sqid',
),
));
db_change_field($ret, 'security_questions', 'security_question', 'question', array(
'description' => 'The text of the question',
'type' => 'varchar',
'length' => '500',
));
db_change_field($ret, 'security_questions', 'uid', 'uid', array(
'description' => '0 for questions available system-wide, or the owning uid for custom per-user questions.',
'type' => 'int',
'not null' => TRUE,
'default' => 0,
));
db_query('UPDATE {security_questions} SET uid = 0 WHERE admin = 1');
db_drop_field($ret, 'security_questions', 'admin');
db_add_field($ret, 'security_questions', 'machine_name', array(
'description' => 'An optional machine-readable name for this question, to support exportable configuration.',
'type' => 'varchar',
'length' => 255,
));
db_add_index($ret, 'security_questions', 'uid', array(
'uid',
));
// Drop our temporary index.
db_drop_index($ret, 'security_questions', 'temp');
// Rename security_question_id to sqid in related tables.
db_drop_primary_key($ret, 'security_questions_answers');
db_change_field($ret, 'security_questions_answers', 'security_question_id', 'sqid', array(
'description' => 'The security question ID',
'type' => 'int',
), array(
'primary key' => array(
'uid',
'sqid',
),
));
db_change_field($ret, 'security_questions_answers', 'user_answer', 'answer', array(
'description' => 'The answer to the users question',
'type' => 'varchar',
'length' => '100',
));
db_change_field($ret, 'security_questions_incorrect', 'security_question_id', 'sqid', array(
'description' => 'The security question ID.',
'type' => 'int',
'not null' => TRUE,
'default' => 0,
));
}