Веб-мастеру

Здесь можно просмотреть статьи в порядке заинтересованности, комментирования и рейтинга, который выставили другие посетители.



Миграция затрагивающая данные:

class Version20150722151547 extends AbstractMigration
{
    const TABLE_WORK    = 'participant';
    const TABLE_BACKUP = 'participant_20150722151547';

    public function up(Schema $schema)
    {

        // создаем бэкап-таблицу и копируем в неее данные без индексов и FK
        $this->addSql('CREATE TABLE ' . self::TABLE_BACKUP . ' AS SELECT * FROM ' . self::TABLE_WORK);
        // изменяем данные
        $this->addSql('UPDATE ' . self::TABLE_WORK . ' SET doc_type = 1 WHERE participant_type = 1');

    }

    public function down(Schema $schema)
    {
        $this->addSql('SET FOREIGN_KEY_CHECKS = 0');
        $this->addSql('SET UNIQUE_CHECKS = 0');
        $this->addSql('TRUNCATE ' . self::TABLE_WORK);
        $this->addSql('INSERT INTO ' . self::TABLE_WORK . ' SELECT * FROM ' . self::TABLE_BACKUP);
        $this->addSql('DROP TABLE ' . self::TABLE_BACKUP);
        $this->addSql('SET UNIQUE_CHECKS = 1');
        $this->addSql('SET FOREIGN_KEY_CHECKS = 1');
    }
}

Стоит заметить, что команада SET FOREIGN_KEY_CHECKS = 0 работает для текущей сессии (настройка текущей сессии), то есть на другом параллельном подключении будет уже стоять SET FOREIGN_KEY_CHECKS=1 (если в настройках не было указано иного).

Главная
X

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2017 YaPro.Ru

Главная »