You are here

function opigno_scorm_update_8001 in Opigno SCORM 8

Sets cmi_key field length to 190.

To avoid error 1709 on MySQL < 5.7.7 without innodb_large_prefix.

File

./opigno_scorm.install, line 269
Module install/update functionality.

Code

function opigno_scorm_update_8001(&$sandbox) {
  $table_name = 'opigno_scorm_scorm_cmi_data';
  $db_schema = Database::getConnection()
    ->schema();
  $db_schema
    ->dropPrimaryKey($table_name);
  $db_schema
    ->dropIndex($table_name, 'cmi_key');
  $spec = [
    'description' => 'The CMI data key string.',
    'type' => 'varchar',
    'length' => 190,
    'not null' => TRUE,
    'default' => '',
  ];
  $keys_new = [
    'fields' => [
      'cmi_key' => $spec,
    ],
    'indexes' => [
      'cmi_key' => [
        'cmi_key',
      ],
    ],
  ];
  $db_schema
    ->changeField($table_name, 'cmi_key', 'cmi_key', $spec, $keys_new);
  $db_schema
    ->addPrimaryKey($table_name, [
    'uid',
    'scorm_id',
    'cmi_key',
  ]);
}