Storm\Drivers\Platforms\Development\Syncing\DatabaseSyncer::SyncDatabase PHP Метод

SyncDatabase() защищенный Метод

protected SyncDatabase ( Storm\Drivers\Base\Relational\Queries\IConnection $Connection, Storm\Drivers\Base\Relational\Database $Database, Storm\Drivers\Base\Relational\Syncing\IDatabaseBuilder $Builder, Storm\Drivers\Base\Relational\Syncing\IDatabaseModifier $Modifier )
$Connection Storm\Drivers\Base\Relational\Queries\IConnection
$Database Storm\Drivers\Base\Relational\Database
$Builder Storm\Drivers\Base\Relational\Syncing\IDatabaseBuilder
$Modifier Storm\Drivers\Base\Relational\Syncing\IDatabaseModifier
    protected function SyncDatabase(IConnection $Connection, Relational\Database $Database, IDatabaseBuilder $Builder, IDatabaseModifier $Modifier)
    {
        $CurrentDatabase = $Builder->Build($Connection);
        $this->DropRelationalTraits($Connection, $Modifier, $CurrentDatabase);
        $Tables = $Database->GetTables();
        $CurrentTables = $CurrentDatabase->GetTables();
        if (!$this->IdentifiersAreCaseSensitive) {
            $Tables = array_change_key_case($Tables);
            $CurrentTables = array_change_key_case($CurrentTables);
        }
        foreach ($Tables as $TableName => $Table) {
            $this->SyncTable($Connection, $Modifier, $Table, isset($CurrentTables[$TableName]) ? $CurrentTables[$TableName] : null);
        }
        foreach ($CurrentDatabase->GetTables() as $TableName => $CurrentTable) {
            if (!isset($CurrentTables[$TableName])) {
                $this->SyncTable($Connection, $Modifier, null, $CurrentTable);
            }
        }
        $this->AddRelationalTraits($Connection, $Modifier, $Database);
    }