| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -76,7 +76,8 @@ class Schema extends \yii\db\Schema | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * Creates a query builder for the MySQL database. | 
					 | 
					 | 
					 | 
						 * Creates a query builder for the MySQL database. | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * @return QueryBuilder query builder instance | 
					 | 
					 | 
					 | 
						 * @return QueryBuilder query builder instance | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 */ | 
					 | 
					 | 
					 | 
						 */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						public function createQueryBuilder() { | 
					 | 
					 | 
					 | 
						public function createQueryBuilder() | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							return new QueryBuilder($this->db); | 
					 | 
					 | 
					 | 
							return new QueryBuilder($this->db); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -85,7 +86,8 @@ class Schema extends \yii\db\Schema | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * @param TableSchema $table the table metadata object | 
					 | 
					 | 
					 | 
						 * @param TableSchema $table the table metadata object | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * @param string $name the table name | 
					 | 
					 | 
					 | 
						 * @param string $name the table name | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 */ | 
					 | 
					 | 
					 | 
						 */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						protected function resolveTableNames($table, $name) { | 
					 | 
					 | 
					 | 
						protected function resolveTableNames($table, $name) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							$parts = explode('.', str_replace('"', '', $name)); | 
					 | 
					 | 
					 | 
							$parts = explode('.', str_replace('"', '', $name)); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if (isset($parts[1])) { | 
					 | 
					 | 
					 | 
							if (isset($parts[1])) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								$table->schemaName = $parts[0]; | 
					 | 
					 | 
					 | 
								$table->schemaName = $parts[0]; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -104,7 +106,8 @@ class Schema extends \yii\db\Schema | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * @param string $name table name | 
					 | 
					 | 
					 | 
						 * @param string $name table name | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * @return string the properly quoted table name | 
					 | 
					 | 
					 | 
						 * @return string the properly quoted table name | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 */ | 
					 | 
					 | 
					 | 
						 */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						public function quoteSimpleTableName($name) { | 
					 | 
					 | 
					 | 
						public function quoteSimpleTableName($name) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							return strpos($name, '"') !== false ? $name : '"' . $name . '"'; | 
					 | 
					 | 
					 | 
							return strpos($name, '"') !== false ? $name : '"' . $name . '"'; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -113,12 +116,15 @@ class Schema extends \yii\db\Schema | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * @param string $name table name | 
					 | 
					 | 
					 | 
						 * @param string $name table name | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * @return TableSchema|null driver dependent table metadata. Null if the table does not exist. | 
					 | 
					 | 
					 | 
						 * @return TableSchema|null driver dependent table metadata. Null if the table does not exist. | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 */ | 
					 | 
					 | 
					 | 
						 */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						public function loadTableSchema($name) { | 
					 | 
					 | 
					 | 
						public function loadTableSchema($name) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							$table = new TableSchema(); | 
					 | 
					 | 
					 | 
							$table = new TableSchema(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							$this->resolveTableNames($table, $name); | 
					 | 
					 | 
					 | 
							$this->resolveTableNames($table, $name); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if ($this->findColumns($table)) { | 
					 | 
					 | 
					 | 
							if ($this->findColumns($table)) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								$this->findConstraints($table); | 
					 | 
					 | 
					 | 
								$this->findConstraints($table); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								return $table; | 
					 | 
					 | 
					 | 
								return $table; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							} else { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								return null; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							} | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -126,7 +132,8 @@ class Schema extends \yii\db\Schema | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * Collects the foreign key column details for the given table. | 
					 | 
					 | 
					 | 
						 * Collects the foreign key column details for the given table. | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * @param TableSchema $table the table metadata | 
					 | 
					 | 
					 | 
						 * @param TableSchema $table the table metadata | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 */ | 
					 | 
					 | 
					 | 
						 */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						protected function findConstraints($table) { | 
					 | 
					 | 
					 | 
						protected function findConstraints($table) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							$tableName = $this->quoteValue($table->name); | 
					 | 
					 | 
					 | 
							$tableName = $this->quoteValue($table->name); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							$tableSchema = $this->quoteValue($table->schemaName); | 
					 | 
					 | 
					 | 
							$tableSchema = $this->quoteValue($table->schemaName); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -175,7 +182,8 @@ SQL; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * @param TableSchema $table the table metadata | 
					 | 
					 | 
					 | 
						 * @param TableSchema $table the table metadata | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * @return boolean whether the table exists in the database | 
					 | 
					 | 
					 | 
						 * @return boolean whether the table exists in the database | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 */ | 
					 | 
					 | 
					 | 
						 */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						protected function findColumns($table) { | 
					 | 
					 | 
					 | 
						protected function findColumns($table) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							$tableName = $this->db->quoteValue($table->name); | 
					 | 
					 | 
					 | 
							$tableName = $this->db->quoteValue($table->name); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							$schemaName = $this->db->quoteValue($table->schemaName); | 
					 | 
					 | 
					 | 
							$schemaName = $this->db->quoteValue($table->schemaName); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							$sql = <<<SQL | 
					 | 
					 | 
					 | 
							$sql = <<<SQL | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -234,11 +242,11 @@ ORDER BY | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						a.attnum; | 
					 | 
					 | 
					 | 
						a.attnum; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					SQL; | 
					 | 
					 | 
					 | 
					SQL; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							try { | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							$columns = $this->db->createCommand($sql)->queryAll(); | 
					 | 
					 | 
					 | 
							$columns = $this->db->createCommand($sql)->queryAll(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							} catch (\Exception $e) { | 
					 | 
					 | 
					 | 
							if (empty($columns)) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								return false; | 
					 | 
					 | 
					 | 
								return false; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							} | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							foreach ($columns as $column) { | 
					 | 
					 | 
					 | 
							foreach ($columns as $column) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								$column = $this->loadColumnSchema($column); | 
					 | 
					 | 
					 | 
								$column = $this->loadColumnSchema($column); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								$table->columns[$column->name] = $column; | 
					 | 
					 | 
					 | 
								$table->columns[$column->name] = $column; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -257,7 +265,8 @@ SQL; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * @param array $info column information | 
					 | 
					 | 
					 | 
						 * @param array $info column information | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * @return ColumnSchema the column schema object | 
					 | 
					 | 
					 | 
						 * @return ColumnSchema the column schema object | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 */ | 
					 | 
					 | 
					 | 
						 */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						protected function loadColumnSchema($info) { | 
					 | 
					 | 
					 | 
						protected function loadColumnSchema($info) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							$column = new ColumnSchema(); | 
					 | 
					 | 
					 | 
							$column = new ColumnSchema(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							$column->allowNull = $info['is_nullable']; | 
					 | 
					 | 
					 | 
							$column->allowNull = $info['is_nullable']; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							$column->autoIncrement = $info['is_autoinc']; | 
					 | 
					 | 
					 | 
							$column->autoIncrement = $info['is_autoinc']; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -280,5 +289,4 @@ SQL; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							$column->phpType = $this->getColumnPhpType($column); | 
					 | 
					 | 
					 | 
							$column->phpType = $this->getColumnPhpType($column); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							return $column; | 
					 | 
					 | 
					 | 
							return $column; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} |