diff --git a/assets/AppUtility.php b/assets/AppUtility.php index 647fe94..fdc38c0 100644 --- a/assets/AppUtility.php +++ b/assets/AppUtility.php @@ -104,6 +104,8 @@ private function runMySql() } else { $this->string .= (empty($this->array['defaultValue'])) ? '' : " DEFAULT " . $this->array['defaultValue']['expression'] . " "; } + if (isset($this->array['comment'])) + $this->string .= (empty($this->array['comment'])) ? '' : " COMMENT \'{$this->array['comment']}\'"; } private function runSqlite() diff --git a/controllers/DefaultController.php b/controllers/DefaultController.php index 878ec64..d3a9eff 100644 --- a/controllers/DefaultController.php +++ b/controllers/DefaultController.php @@ -128,19 +128,27 @@ public function actionIndex() $table_indexes = Yii::$app->db->createCommand('SHOW INDEX FROM `' . $table . '`')->queryAll(); + $table_indexes_new = []; foreach ($table_indexes as $item) { - if ($item['Key_name'] != 'PRIMARY' && $item['Seq_in_index'] == 1) { - - $unique = ($item['Non_unique']) ? '' : '_UNIQUE'; - $array['indexes'][] = [ - 'name' => 'idx' . $unique . '_' . $item['Column_name'] . '_' . explode('.', microtime('usec'))[1] . '_' . substr("000" . sizeof($array['indexes']), -2), - 'unique' => (($item['Non_unique']) ? 0 : 1), - 'column' => $item['Column_name'], - 'table' => $item['Table'], - ]; + if ($item['Key_name'] != 'PRIMARY' ) { + $table_indexes_new[$item['Key_name']]['cols'][] = $item['Column_name']; + $table_indexes_new[$item['Key_name']]['Column_name'][] = $item['Column_name']; + $table_indexes_new[$item['Key_name']]['Non_unique'] = $item['Non_unique']; + $table_indexes_new[$item['Key_name']]['Table'] = $item['Table']; } + } + foreach ($table_indexes_new as $item) { + $unique = ($item['Non_unique']) ? '' : '_UNIQUE'; + $array['indexes'][] = [ + 'name' => 'idx' . $unique . '_' . implode("_" ,array_values($item['Column_name'])) . '_' . explode('.', microtime('usec'))[1] . '_' . substr("000" . sizeof($array['indexes']), -2), + 'unique' => (($item['Non_unique']) ? 0 : 1), + 'column' => implode(",", array_values($item['cols'])),//$item['Column_name'], + 'table' => $item['Table'], + ]; + } + if ($ifThen) { $output->tabLevel--; $output->addStr('}');