mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-26 14:26:54 +08:00
fixed bug with forgotten param, fixed behavior for one table integrity
This commit is contained in:
@ -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
|
|||||||
/**
|
/**
|
||||||
* 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
|
|||||||
* 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();
|
||||||
|
Reference in New Issue
Block a user