浏览代码

[Web] Fix database init

André 7 年之前
父节点
当前提交
2c58323e36
共有 1 个文件被更改,包括 6 次插入2 次删除
  1. 6 2
      data/web/inc/init_db.inc.php

+ 6 - 2
data/web/inc/init_db.inc.php

@@ -759,8 +759,12 @@ function init_db_schema() {
           if ($num_results == 0) {
             if (strpos($type, 'AUTO_INCREMENT') !== false) {
               $type = $type . ' PRIMARY KEY ';
-              // Adding an AUTO_INCREMENT key, need to drop primary keys first
-              $pdo->query("ALTER TABLE `" . $table . "` DROP PRIMARY KEY");
+              // Adding an AUTO_INCREMENT key, need to drop primary keys first, if exists
+              $stmt = $pdo->query("SHOW KEYS FROM `" . $table . "` WHERE Key_name = 'PRIMARY'");
+              $num_results = count($stmt->fetchAll(PDO::FETCH_ASSOC));
+              if ($num_results != 0) {
+                $pdo->query("ALTER TABLE `" . $table . "` DROP PRIMARY KEY");
+              }
             }
             $pdo->query("ALTER TABLE `" . $table . "` ADD `" . $column . "` " . $type);
           }