function security_questions_update_7202 in Security Questions 7.2
Convert the schema to support the new API.
File
- ./
security_questions.install, line 210 - Install file for security_questions.
Code
function security_questions_update_7202() {
// 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('security_questions', 'temp', array(
'security_question_id',
));
// Convert the questions table.
db_drop_primary_key('security_questions');
db_change_field('security_questions', 'security_question_id', 'sqid', array(
'description' => 'The security question ID',
'type' => 'serial',
), array(
'primary key' => array(
'sqid',
),
));
db_change_field('security_questions', 'security_question', 'question', array(
'description' => 'The text of the question',
'type' => 'varchar',
'length' => '500',
));
db_change_field('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_update('security_questions')
->fields(array(
'uid' => 0,
))
->condition('admin', 1)
->execute();
db_drop_field('security_questions', 'admin');
db_add_field('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('security_questions', 'uid', array(
'uid',
));
// Drop our temporary index.
db_drop_index('security_questions', 'temp');
// Rename security_question_id to sqid in related tables.
db_drop_primary_key('security_questions_answers');
db_change_field('security_questions_answers', 'security_question_id', 'sqid', array(
'description' => 'The security question ID',
'type' => 'int',
), array(
'primary key' => array(
'uid',
'sqid',
),
));
db_change_field('security_questions_answers', 'user_answer', 'answer', array(
'description' => 'The answer to the users question',
'type' => 'varchar',
'length' => '100',
));
db_change_field('security_questions_incorrect', 'security_question_id', 'sqid', array(
'description' => 'The security question ID.',
'type' => 'int',
'not null' => TRUE,
'default' => 0,
));
}