Commit 65b543f6 by Mark

fixed bug with forgotten param, fixed behavior for one table integrity

parent e23f869c
...@@ -743,12 +743,13 @@ class Command extends \yii\base\Component ...@@ -743,12 +743,13 @@ class Command extends \yii\base\Component
* @param boolean $check whether to turn on or off the integrity check. * @param boolean $check whether to turn on or off the integrity check.
* @param string $schema the schema name of the tables. Defaults to empty string, meaning the current * @param string $schema the schema name of the tables. Defaults to empty string, meaning the current
* or default schema. * or default schema.
* @param string $table the table name.
* @return Command the command object itself * @return Command the command object itself
* @throws NotSupportedException if this is not supported by the underlying DBMS * @throws NotSupportedException if this is not supported by the underlying DBMS
*/ */
public function checkIntegrity($check = true, $schema = '') public function checkIntegrity($check = true, $schema = '', $table = '')
{ {
$sql = $this->db->getQueryBuilder()->checkIntegrity($check, $schema); $sql = $this->db->getQueryBuilder()->checkIntegrity($check, $schema, $table);
return $this->setSql($sql); return $this->setSql($sql);
} }
} }
...@@ -99,14 +99,14 @@ class QueryBuilder extends \yii\db\QueryBuilder ...@@ -99,14 +99,14 @@ class QueryBuilder extends \yii\db\QueryBuilder
/** /**
* Builds a SQL statement for enabling or disabling integrity check. * Builds a SQL statement for enabling or disabling integrity check.
* @param boolean $check whether to turn on or off the integrity check. * @param boolean $check whether to turn on or off the integrity check.
* @param string $table the table name. Meaningless for MySQL. * @param string $schema the schema of the tables.
* @param string $schema the schema of the tables. Meaningless for MySQL. * @param string $table the table name.
* @return string the SQL statement for checking integrity * @return string the SQL statement for checking integrity
*/ */
public function checkIntegrity($check = true, $schema = '', $table = '') public function checkIntegrity($check = true, $schema = '', $table = '')
{ {
$enable=$check ? 'ENABLE' : 'DISABLE'; $enable = $check ? 'ENABLE' : 'DISABLE';
$tableNames=$this->db->schema->findTableNames($schema); $tableNames = $table ? [$table] : $this->db->schema->findTableNames($schema);
$command = ''; $command = '';
foreach($tableNames as $tableName) foreach($tableNames as $tableName)
......
...@@ -87,7 +87,7 @@ class Schema extends \yii\db\Schema ...@@ -87,7 +87,7 @@ class Schema extends \yii\db\Schema
* If not empty, the returned table names will be prefixed with the schema name. * If not empty, the returned table names will be prefixed with the schema name.
* @return array all table names in the database. * @return array all table names in the database.
*/ */
protected function findTableNames($schema = '') public function findTableNames($schema = '')
{ {
$sql = "SELECT DISTINCT tbl_name FROM sqlite_master WHERE tbl_name<>'sqlite_sequence'"; $sql = "SELECT DISTINCT tbl_name FROM sqlite_master WHERE tbl_name<>'sqlite_sequence'";
return $this->db->createCommand($sql)->queryColumn(); return $this->db->createCommand($sql)->queryColumn();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment