Міграції в yii2 фреймворку
Опис:
Міграції в yii2 фреймворку, створення міграції, добавлення колонки через міграції, створення звязків через міграціїї.
Створемо нову міграції, запускаєм команду:
php yii migrate/create create_news_table
після створення міграції добавляєм поля name, url_alias, date_news
<?php use yii\db\Migration; /** * Handles the creation of table `news`. */ class m200305_180606_create_news_table extends Migration { /** * @inheritdoc */ public function safeUp() { $this->createTable('news', [ 'id' => $this->primaryKey(), 'name'=> $this->string(512), 'url_alias'=> $this->string(256), 'date_news'=> $this->timestamp(), ]); } /** * @inheritdoc */ public function safeDown() { $this->dropTable('news'); } }
Запускаєм міграції командою:
php yii migrate
після цього створиться у нас таблиця news в бд.
Добавлення колонки через міграції запускаєм команду:
php yii migrate/create add_colums_tovar_id_table_new
<?php use yii\db\Migration; /** * Class m200305_182021_add_colums_tovar_id_table_news */ class m200305_182021_add_colums_tovar_id_table_news extends Migration { const TABLE_NAME = '{{%news}}'; /** * @inheritdoc */ public function safeUp() { $this->addColumn(self::TABLE_NAME, 'tovar_id', $this->integer(8)); } /** * @inheritdoc */ public function safeDown() { echo "m200305_182021_add_colums_tovar_id_table_news cannot be reverted.\n"; return false; } /* // Use up()/down() to run migration code without a transaction. public function up() { } public function down() { echo "m200305_182021_add_colums_tovar_id_table_news cannot be reverted.\n"; return false; } */ }
Запускаєм міграції командою:
php yii migrate
після цього створиться у нас в таблиці news нова колонка tovar_id в бд.
Створення звязків через міграціїї, запускаєм команду:
php yii migrate/create add_tovar_id_news_communication
добавляєм addForeignKey з ключами
<?php use yii\db\Migration; /** * Class m200305_183251_add_tovar_id_news_communication */ class m200305_183251_add_tovar_id_news_communication extends Migration { /** * @inheritdoc */ public function safeUp() { $this->addForeignKey( 'tovar_id', // умовне імя ключа 'news', // назва таблиці в яку добавляєм 'tovar_id', // назва поля в даній таблиці(news) яке э ключом 'tovar', // назва таблиці з якою хочем звязатися 'id' // поле таблиці(tovar) з яким хочем звязатися ); } /** * @inheritdoc */ public function safeDown() { echo "m200305_183251_add_tovar_id_news_communication cannot be reverted.\n"; return false; } /* // Use up()/down() to run migration code without a transaction. public function up() { } public function down() { echo "m200305_183251_add_tovar_id_news_communication cannot be reverted.\n"; return false; } */ }
Запускаєм міграції командою:
php yii migrate
після цього створяться у нас в таблиці news колонка tovar_id і таблиця tovar колонка id звязок.

