19 declare(strict_types=1);
    32         if ($this->db->tableExists(
'il_cert_template') && $this->db->tableColumnExists(
'il_cert_template', 
'certificate_content_bu')) {
    33             $this->db->dropTableColumn(
'il_cert_template', 
'certificate_content_bu');
    35         if ($this->db->tableExists(
'il_cert_user_cert') && $this->db->tableColumnExists(
'il_cert_user_cert', 
'certificate_content_bu')) {
    36             $this->db->dropTableColumn(
'il_cert_user_cert', 
'certificate_content_bu');
    42         if ($this->db->tableExists(
'il_cert_template') && $this->db->tableColumnExists(
'il_cert_template', 
'certificate_content_backup')) {
    43             $this->db->dropTableColumn(
'il_cert_template', 
'certificate_content_backup');
    45         if ($this->db->tableExists(
'il_cert_user_cert') && $this->db->tableColumnExists(
'il_cert_user_cert', 
'certificate_content_backup')) {
    46             $this->db->dropTableColumn(
'il_cert_user_cert', 
'certificate_content_backup');
    52         if ($this->db->tableExists(
'il_cert_bgtask_migr')) {
    53             $this->db->dropTable(
'il_cert_bgtask_migr');
    59         if ($this->db->tableExists(
'il_cert_user_cert') && $this->db->tableColumnExists(
'il_cert_user_cert', 
'user_id')) {
    60             $this->db->renameTableColumn(
'il_cert_user_cert', 
'user_id', 
'usr_id');
    67             $this->db->tableExists(
'il_cert_template') &&
    68             !$this->db->indexExistsByFields(
'il_cert_template', [
'background_image_path', 
'currently_active'])
    70             $this->db->addIndex(
'il_cert_template', [
'background_image_path', 
'currently_active'], 
'i5');
    74             $this->db->tableExists(
'il_cert_user_cert') &&
    75             !$this->db->indexExistsByFields(
'il_cert_user_cert', [
'background_image_path', 
'currently_active'])
    77             $this->db->addIndex(
'il_cert_user_cert', [
'background_image_path', 
'currently_active'], 
'i7');
    83         if ($this->db->tableExists(
'il_cert_user_cert') &&
    84             !$this->db->tableColumnExists(
'il_cert_user_cert', 
'certificate_id')) {
    85             $this->db->addTableColumn(
'il_cert_user_cert', 
'certificate_id', [
    95         if ($this->db->tableExists(
'il_cert_user_cert') &&
    96             $this->db->tableColumnExists(
'il_cert_user_cert', 
'certificate_id')) {
    99                 $this->db->dropUniqueConstraint(
'il_cert_user_cert', 
'c1');
   104             $this->db->manipulateF(
   105                 'UPDATE il_cert_user_cert SET certificate_id = %s WHERE certificate_id IS NULL',
   110             $this->db->modifyTableColumn(
'il_cert_user_cert', 
'certificate_id', [
   121         $query = 
'SELECT COUNT(*) cnt FROM il_cert_user_cert WHERE certificate_id = ' .
   123         $res = $this->db->query($query);
   124         $num = (
int) $this->db->fetchAssoc(
$res)[
'cnt'];
   126             $this->db->addUniqueConstraint(
'il_cert_user_cert', [
'certificate_id'], 
'c1');
   133             $this->db->tableExists(
'il_cert_user_cert')
   135             $this->db->addTableColumn(
   137                 'background_image_ident',
   145             $this->db->addTableColumn(
   147                 'thumbnail_image_ident',
   157             $this->db->tableExists(
'il_cert_template')
   159             $this->db->addTableColumn(
   161                 'background_image_ident',
   169             $this->db->addTableColumn(
   171                 'thumbnail_image_ident',
   180         $res = $this->db->query(
   181             'SELECT value FROM settings WHERE keyword = ' .
   185         $row = $this->db->fetchAssoc(
$res);
   186         $defaultImageFileName = $row[
'value'] ?? 
'';
   188         $this->db->manipulate(
   189             'DELETE FROM settings WHERE keyword = ' .
   193         $this->db->insert(
'settings', [
 
prepare(ilDBInterface $db)