MySQL

Как выбрать бд

Стоит начать с того, что в современном мире нет противостояния между реляционными и нереляционными базами данных. Вместо этого стоит говорить об их совместном использовании для решения задач, на которых та или иная технология показывает себя лучше всего.

Занимаясь поиском системы управления базами данных, можно выбрать одну технологию, а позже, уточнив требования, переключиться на что-то другое. Однако, разумное планирование позволит сэкономить немало времени и средств.

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

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 (если в настройках не было указано иного).

Миграция поля — готовим правильно

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

Нюансы работы внешних ключей на примере ORM Doctrine2.

Придерживаться правил именования при разработке, всегда является хоршим тоном, поэтому, мне кажется, в SQL такие правила тоже должны быть.

Главная
X

youtube.com/watch?v=7hFivbgIEqk

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

Главная » Веб-мастеру »