src/Schema/Reflector.php
public function run()
    {
        $hasChanges = false;
        foreach ($this->tables as $table) {
            if (
                $table->getComparator()->hasChanges()
                || $table->getStatus() == AbstractTable::STATUS_DECLARED_DROPPED
            ) {
                $hasChanges = true;
                break;
            }
        }

        if (!$hasChanges) {
            //Nothing to do
            return;
        }

        $this->beginTransaction();

        try {
            //Drop not-needed foreign keys and alter everything else
            $this->dropForeignKeys();

            //Drop not-needed indexes
            $this->dropIndexes();

            //Other changes [NEW TABLES WILL BE CREATED HERE!]
            foreach ($this->commitChanges() as $table) {
                $table->save(HandlerInterface::CREATE_FOREIGN_KEYS, true);
            }
        } catch (\Throwable $e) {
            $this->rollbackTransaction();
            throw $e;
        }

        $this->commitTransaction();
    }
public function run()
    {
        $hasChanges = false;
        foreach ($this->tables as $table) {
            if (
                $table->getComparator()->hasChanges()
                || $table->getStatus() == AbstractTable::STATUS_DECLARED_DROPPED
            ) {
                $hasChanges = true;
                break;
            }
        }

        if (!$hasChanges) {
            //Nothing to do
            return;
        }

        $this->beginTransaction();

        try {
            //Drop not-needed foreign keys and alter everything else
            $this->dropForeignKeys();

            //Drop not-needed indexes
            $this->dropIndexes();

            //Other changes [NEW TABLES WILL BE CREATED HERE!]
            foreach ($this->commitChanges() as $table) {
                $table->save(HandlerInterface::CREATE_FOREIGN_KEYS, true);
            }
        } catch (\Throwable $e) {
            $this->rollbackTransaction();
            throw $e;
        }

        $this->commitTransaction();
    }
public function run ( ) { $ hasChanges = false ; foreach ( $ this -> tables as $ table ) { if ( $ table -> getComparator ( ) -> hasChanges ( ) || $ table -> getStatus ( ) == AbstractTable :: STATUS_DECLARED_DROPPED ) { $ hasChanges = true ; break ; } } if ( ! $ hasChanges ) { //Nothing to do return ; } $ this -> beginTransaction ( ) ; try { //Drop not-needed foreign keys and alter everything else $ this -> dropForeignKeys ( ) ; //Drop not-needed indexes $ this -> dropIndexes ( ) ; //Other changes [NEW TABLES WILL BE CREATED HERE!] foreach ( $ this -> commitChanges ( ) as $ table ) { $ table -> save ( HandlerInterface :: CREATE_FOREIGN_KEYS , true ) ; } } catch ( \ Throwable $ e ) { $ this -> rollbackTransaction ( ) ; throw $ e ; } $ this -> commitTransaction ( ) ; }
Synchronize tables.

@throws \Throwable
Synchronize tables .