OSDN Git Service

Настройка travis-CI/CD. Модицифированы файлы миграций
authorDmitry Dobryshin <dimkainc@mail.ru>
Mon, 26 Oct 2020 06:04:10 +0000 (09:04 +0300)
committerDmitry Dobryshin <dimkainc@mail.ru>
Mon, 26 Oct 2020 06:04:10 +0000 (09:04 +0300)
migrations/m200804_115556_create_items_table.php
migrations/m200806_061656_update_items_table.php
migrations/m200810_082546_create_status_table.php
migrations/m200818_045741_create_types_table.php
migrations/m200818_123015_create_locations_table.php
migrations/m200826_081002_create_moving_table.php
migrations/m200902_095218_change_items_table.php
migrations/m200907_045611_modify_items_table.php
migrations/m201019_061204_create_users_table.php

index f18b40a..3e8f5c6 100644 (file)
@@ -10,13 +10,12 @@ use app\models\Items;
  */
 class m200804_115556_create_items_table extends Migration
 {
-    public $table = Items::tableName();
     /**
      * {@inheritdoc}
      */
     public function safeUp()
     {
-        $table = $this->table;
+        $table = Items::tableName();
         $this->createTable($table, [
             'id'          => 'SERIAL',
             'date'        => $this->date()->comment('Дата внесения записи'),
@@ -70,7 +69,7 @@ class m200804_115556_create_items_table extends Migration
      */
     public function safeDown()
     {
-        $table = $this->table;
+        $table = Items::tableName();
         $this->dropPrimaryKey('id_pk', $table);
         $this->dropTable($table);
     }
index 76a2fd0..1d61a05 100644 (file)
@@ -10,13 +10,12 @@ use app\models\Items;
  */
 class m200806_061656_update_items_table extends Migration
 {
-    public $table = Items::tableName();
     /**
      * {@inheritdoc}
      */
     public function safeUp()
     {
-        $table = $this->table;
+        $table = Items::tableName();
         $this->addColumn($table, 'comment', $this->string());
         $this->addCommentOnColumn($table, 'comment', 'Дополнительная информация');
     }
index 76ced3e..67bce4d 100644 (file)
@@ -3,6 +3,7 @@
 use yii\db\Migration;
 
 use app\models\Items;
+use app\models\Status;
 
 /**
  * Handles the creation of table `{{%status}}`.
@@ -10,12 +11,13 @@ use app\models\Items;
  */
 class m200810_082546_create_status_table extends Migration
 {
-    public $status = '{{%status}}';
     /**
      * {@inheritdoc}
      */
     public function safeUp()
     {
+        $status = Status::tableName();
+        $items = Items::tableName();
         // Создание таблицы состояний оборудования
         $this->createTable($status, [
             'id' => 'SERIAL',
@@ -29,9 +31,9 @@ class m200810_082546_create_status_table extends Migration
         $this->addCommentOnColumn($status, 'id', 'Номер по порядку');
         
         // Создание в таблице оборудования колонки с состоянием
-        $this->addColumn(Items::tableName(), 'state_id', $this->integer());
-        $this->addCommentOnColumn(Items::tableName(), 'state_id', 'Состояние');
-        $this->createIndex('idx-items-state', Items::tableName(), 'state_id');
+        $this->addColumn($items, 'state_id', $this->integer());
+        $this->addCommentOnColumn($items, 'state_id', 'Состояние');
+        $this->createIndex('idx-items-state', $items, 'state_id');
         
         // Добавление состояний в табличу
         $this->insert($status, ['name' => 'Склад']);
@@ -43,10 +45,10 @@ class m200810_082546_create_status_table extends Migration
         $this->insert($status, ['name' => 'Списано']);
         
         // Всем объектам назначим состояние 'Работает'
-        $this->update(Items::tableName(), [ 'state_id' => $ind ]);
+        $this->update($items, [ 'state_id' => $ind ]);
 
         // Создадим связь между таблицами оборудования и состояния
-        $this->addForeignKey('fk-items-status-id', Items::tableName(), 'state_id', $status, 'id', 'CASCADE');
+        $this->addForeignKey('fk-items-status-id', $items, 'state_id', $status, 'id', 'CASCADE');
     }
 
     /**
@@ -57,12 +59,14 @@ class m200810_082546_create_status_table extends Migration
         echo 'В связи с модификацией алгоритма работы программы от 17.08.2020, отмена миграции невозможна.'
         return false;
         
+        $status = Status::tableName();
+        $items = Items::tableName();
         // Удаление связи таблиц items и status
-        $this->dropForeignKey('fk-items-status-id', Items::tableName());
+        $this->dropForeignKey('fk-items-status-id', $items);
         // Удаление индексации поля состояний в таблице оборудования
-        $this->dropIndex('idx-items-state', Items::tableName());
+        $this->dropIndex('idx-items-state', $items);
         // Удаление поля состояния в таблице оборудования
-        $this->dropColumn(Items::tableName(), 'state_id');
+        $this->dropColumn($items, 'state_id');
         // Удаление основного ключа сортировки для таблицы состояний
         $this->dropPrimaryKey('id_status', $status);
         // Удаление талицы состояний
index 39dd28a..ef1f57f 100644 (file)
@@ -3,18 +3,20 @@
 use yii\db\Migration;
 
 use app\models\Items;
+use app\models\Types;
 /**
  * Handles the creation of table `{{%types}}`.
  * Добавление таблицы типов оборудования и свзянного с нею поля в таблице оборудования
  */
 class m200818_045741_create_types_table extends Migration
 {
-    public $types = '{{%types}}';
     /**
      * {@inheritdoc}
      */
     public function safeUp()
     {
+        $types = Types::tableName();
+        $items = Items::tableName();
         // Создание таблицы типов
         $this->createTable($types, [
             'id'   => 'SERIAL',
@@ -28,15 +30,16 @@ class m200818_045741_create_types_table extends Migration
         $this->addCommentOnColumn($types, 'id', 'Идентификатор типа (неизменяемое)');
         
         // Добавление поля типа оборудования в таблицу оборудования
-        $this->addColumn(Items::tableName(), 'type_id', $this->integer());
-        $this->addCommentOnColumn(Items::tableName(), 'type_id', 'Тип оборудования');
-        $this->createIndex('idx-items-types', Items::tableName(), 'type_id');
+        $this->addColumn($items, 'type_id', $this->integer());
+        $this->addCommentOnColumn($items, 'type_id', 'Тип оборудования');
+        $this->createIndex('idx-items-types', $items, 'type_id');
         
         // Добавление связи полей таблиц types и items
-        $this->addForeignKey('fk-items-types-id', Items::tableName(), 'type_id', $types, 'id', 'CASCADE');
+        $this->addForeignKey('fk-items-types-id', $items, 'type_id', $types, 'id', 'CASCADE');
         
         // Добавление базовых типов
         $this->insert($types, ['name' => 'Компьютер']);
+        $typeId = Yii::$app->db->getlastInsertID(); // Запомним идентификатор типа 'Компьютер'
         $this->insert($types, ['name' => 'Принтер']);
         $this->insert($types, ['name' => 'МФУ']);
         $this->insert($types, ['name' => 'Сканер']);
@@ -44,6 +47,7 @@ class m200818_045741_create_types_table extends Migration
         $this->insert($types, ['name' => 'Свич/коммутатор']);
         $this->insert($types, ['name' => 'Модем']);
         $this->insert($types, ['name' => 'Монитор']);
+        $this->update($items, ['type_id' => $typeId ]);
     }
 
     /**
@@ -53,12 +57,15 @@ class m200818_045741_create_types_table extends Migration
     {
         echo 'Отменить миграцию невозможно из-за внесённых данных';
         return false;
+
+        $types = Types::tableName();
+        $items = Items::tableName();
         // Удаление связи таблиц оборудования и типов
-        $this->dropForeignKey('fk-items-types-id', Items::tableName());
+        $this->dropForeignKey('fk-items-types-id', $items);
         // Удаление индекса поля типов в таблице оборудования
-        $this->dropIndex('idx-items-types', Items::tableName());
+        $this->dropIndex('idx-items-types', $items);
         // Удаление поля типов в таблице оборудования
-        $this->dropColumn(Items::tableName(), 'type_id');
+        $this->dropColumn($items, 'type_id');
         // Удаление основного ключа в таблице типов
         $this->dropPrimaryKey('id-types', $types);
         // Удаление таблицы типов
index a1d61fa..1be85ae 100644 (file)
@@ -3,6 +3,9 @@
 use yii\db\Migration;
 
 use app\models\Items;
+use app\models\Locations;
+use app\models\Regions;
+
 /**
  * Handles the creation of table `{{%locations}}`.
  * Has foreign keys to the tables:
@@ -12,13 +15,14 @@ use app\models\Items;
  */
 class m200818_123015_create_locations_table extends Migration
 {
-    public $regions   = '{{%regions}}';
-    public $locations = '{{%locations}}';
     /**
      * {@inheritdoc}
      */
     public function safeUp()
     {
+        $regions   = Regions::tableName();
+        $locations = Locations::tableName();
+        $items     = Items::tableName();
         // Создание таблицы регионов
         $this->createTable($regions, [
             'id' => 'SERIAL',
@@ -50,19 +54,24 @@ class m200818_123015_create_locations_table extends Migration
         $this->createIndex('idx-locations-region_id', $locations, 'region_id');
 
         // Создание указателя места размещения в таблице оборудования
-        $this->addColumn(Items::tableName(), 'location_id', $this->integer());
+        $this->addColumn($items, 'location_id', $this->integer());
 
         // Добавление комментария для поля места  размещения
-        $this->addCommentOnColumn(Items::tableName(), 'location_id', 'Идентификатор места размещения');
+        $this->addCommentOnColumn($items, 'location_id', 'Идентификатор места размещения');
 
         // Создание индексирования для указателя места размещения
-        $this->createIndex('idx-items-location_id', Items::tableName(), 'location_id');
+        $this->createIndex('idx-items-location_id', $items, 'location_id');
 
         // Создание связи между таблицами оборудования и размещений
-        $this->addForeignKey('fk-items-locations-id', Items::tableName(), 'location_id', $locations, 'id', 'CASCADE');
+        $this->addForeignKey('fk-items-locations-id', $items, 'location_id', $locations, 'id', 'CASCADE');
 
         // Создание связи `{{%regions}}`
         $this->addForeignKey('fk-locations-regions-id', $locations, 'region_id', $regions, 'id', 'CASCADE');
+        $this->insert($regions, [ 'name' => 'Одинцовская ветеринарная станция' ]);
+        $regionId = Yii::$app->db->getlastInsertID();
+        $this->insert($locations, [ 'region_id' => $regionId, 'name' => 'Матвейково' ]);
+        $locationId = Yii::$app->db->getlastInsertID();
+        $this->update($items, [ 'location_id' => $locationId ]);
     }
 
     /**
@@ -70,17 +79,20 @@ class m200818_123015_create_locations_table extends Migration
      */
     public function safeDown()
     {
+        $regions   = Regions::tableName();
+        $locations = Locations::tableName();
+        $items     = Items::tableName();
         // Удаление связи между таблицами locations и regions
         $this->dropForeignKey('fk-locations-regions-id', $locations);
 
         // Удаление связи таблиц оборудования и мест размещения
-        $this->dropForeignKey('fk-items-locations-id', Items::tableName());
+        $this->dropForeignKey('fk-items-locations-id', $items);
 
         // Удвление индексации для идентификатора мест размещения в таблице оборудования
-        $this->dropIndex('idx-items-location_id', Items::tableName());
+        $this->dropIndex('idx-items-location_id', $items);
 
         // Удаление идентификатора местра размещения из таблицы оборудования
-        $this->dropColumn(Items::tableName(), 'location_id');
+        $this->dropColumn($items, 'location_id');
 
         // удаление индексации для поля регионов
         $this->dropIndex('idx-locations-region_id', $locations);
index 99c76ee..51ccf6d 100644 (file)
@@ -5,6 +5,7 @@ use yii\db\Migration;
 use app\models\Items;
 use app\models\Locations;
 use app\models\Status;
+use app\models\Moving;
 
 /**
  * Создание таблицы перемещения оборудования `{{%moving}}`.
@@ -16,13 +17,16 @@ use app\models\Status;
  */
 class m200826_081002_create_moving_table extends Migration
 {
-    private $tableName = '{{%moving}}';
     /**
      * {@inheritdoc}
      */
     public function safeUp()
     {
-        $this->createTable( $this->tableName, [
+        $table    = Moving::tableName();
+        $items     = Items::tableName();
+        $locations = Locations::tableName();
+        $status    = Status::tableName();
+        $this->createTable( $table, [
             'id'          => 'SERIAL',
             'date'        => $this->date()->notNull()->comment('Дата перемещения'),
             'item_id'     => $this->integer()->notNull()->comment('Идентификатор предмета/оборудования'),
@@ -31,35 +35,35 @@ class m200826_081002_create_moving_table extends Migration
             'comment'     => $this->text()->comment('Комментарии'),
         ]);
 
-        $this->addCommentOnTable( $this->tableName, 'Таблица перемещений предмета/оборудования');
-        $this->addCommentOnColumn( $this->tableName, 'id', 'Идентификатор записи (неизменяемое)');
+        $this->addCommentOnTable( $table, 'Таблица перемещений предмета/оборудования');
+        $this->addCommentOnColumn( $table, 'id', 'Идентификатор записи (неизменяемое)');
         // Создание основного ключа
-        $this->addPrimaryKey('pk-moving-id', $this->tableName, 'id');
+        $this->addPrimaryKey('pk-moving-id', $table, 'id');
 
         // Создание ключа сортировки по дате
-        $this->createIndex('idx-moving-date', $this->tableName, 'date');
+        $this->createIndex('idx-moving-date', $table, 'date');
 
         // Создание ключа сортировки по коду оборудования
-        $this->createIndex('idx-moving-item_id', $this->tableName, 'item_id');
+        $this->createIndex('idx-moving-item_id', $table, 'item_id');
 
         // Создание связи между перемещениями и оборудованием
-        $this->addForeignKey('fk-moving-item_id', $this->tableName, 'item_id', Items::tableName(), 'id', 'CASCADE');
+        $this->addForeignKey('fk-moving-item_id', $table, 'item_id', $items, 'id', 'CASCADE');
 
         // Создание ключа сортировки по коду места размещения
-        $this->createIndex('idx-moving-location_id', $this->tableName, 'location_id');
+        $this->createIndex('idx-moving-location_id', $table, 'location_id');
 
         // Создание связи между перемещениями и местами размещения
-        $this->addForeignKey('fk-moving-location_id', $this->tableName, 'location_id', Locations::tableName(), 'id', 'CASCADE');
+        $this->addForeignKey('fk-moving-location_id', $table, 'location_id', $locations, 'id', 'CASCADE');
 
         // Создание ключа сортировки по коду состояния
-        $this->createIndex('idx-moving-state_id', $this->tableName, 'state_id');
+        $this->createIndex('idx-moving-state_id', $table, 'state_id');
 
         // Создание связи между перемещениями и состоянием оборудования
-        $this->addForeignKey('fk-moving-state_id', $this->tableName, 'state_id', Status::tableName(), 'id', 'CASCADE');
+        $this->addForeignKey('fk-moving-state_id', $table, 'state_id', $status, 'id', 'CASCADE');
 
         // Внесение первых движений из последнего состояния оборудования
         foreach (Items::find()->all() as $val) {
-            $this->insert( $this->tableName,
+            $this->insert( $table,
                 [
                     'date'        => $val->date,
                     'item_id'     => $val->id,
@@ -76,31 +80,32 @@ class m200826_081002_create_moving_table extends Migration
      */
     public function safeDown()
     {
+        $table    = Moving::tableName();
         // Удаление связи между перемещениями и оборудованием
-        $this->dropForeignKey('fk-moving-item_id', $this->tableName);
+        $this->dropForeignKey('fk-moving-item_id', $table);
 
         // Удаление ключа сортировки по коду оборудования
-        $this->dropIndex('idx-moving-item_id', $this->tableName);
+        $this->dropIndex('idx-moving-item_id', $table);
 
         // Удаление связи между перемещениями и местами расположения
-        $this->dropForeignKey('fk-moving-location_id', $this->tableName);
+        $this->dropForeignKey('fk-moving-location_id', $table);
 
         // Удаление ключа сортировки по коду местра размещения
-        $this->dropIndex('idx-moving-location_id', $this->tableName);
+        $this->dropIndex('idx-moving-location_id', $table);
 
         // Удаление связи между перемещениями и состояниями оборудования
-        $this->dropForeignKey('fk-moving-state_id', $this->tableName);
+        $this->dropForeignKey('fk-moving-state_id', $table);
 
         // Удаление ключа сортировки по коду состояния оборудования
-        $this->dropIndex('idx-moving-state_id', $this->tableName);
+        $this->dropIndex('idx-moving-state_id', $table);
 
         // Удаление ключа сортировки по дате
-        $this->dropIndex('idx-moving-date', $this->tableName);
+        $this->dropIndex('idx-moving-date', $table);
 
         // Удаление основного ключа
-        $this->dropPrimaryKey('pk-moving-id', $this->tableName);
+        $this->dropPrimaryKey('pk-moving-id', $table);
 
         // Удаление таблицы перемещений
-        $this->dropTable($this->tableName);
+        $this->dropTable($table);
     }
 }
index 00dc2c6..989c5bc 100644 (file)
@@ -2,6 +2,8 @@
 
 use yii\db\Migration;
 
+use app\models\Items;
+
 /**
  * Class m200902_095218_change_items_table
  */
@@ -13,7 +15,7 @@ class m200902_095218_change_items_table extends Migration
     public function safeUp()
     {
         echo 'Удаление неиспользуемых полей в таблице предметов/оборудования. Так же удаление уже не нужных связей. Отменить невозможно.';
-        $table = '{{%items}}';
+        $table = Items::tableName();
         $this->dropForeignKey('fk-items-locations-id', $table);
         $this->dropForeignKey('fk-items-status-id', $table);
         $this->dropIndex('idx-items-location_id', $table);
index c4d43c9..e709399 100644 (file)
@@ -15,8 +15,9 @@ class m200907_045611_modify_items_table extends Migration
      */
     public function safeUp()
     {
-        $this->addColumn(Items::tableName(), 'checked', $this->boolean());
-        $this->addCommentOnColumn(Items::tableName(), 'checked', 'Флаг прохождения инвентаризации');
+        $table = Items::tableName();
+        $this->addColumn($table, 'checked', $this->boolean());
+        $this->addCommentOnColumn($table, 'checked', 'Флаг прохождения инвентаризации');
     }
 
     /**
@@ -24,6 +25,7 @@ class m200907_045611_modify_items_table extends Migration
      */
     public function safeDown()
     {
+        $table = Items::tableName();
         $this->dropColumn(Items::tableName(), 'checked');
     }
 }
index d4b4e56..9a3c68f 100644 (file)
@@ -3,18 +3,20 @@
 use yii\db\Migration;
 use yii\helper\Security;
 
+use app\models\User;
+
 /**
  * Handles the creation of table `{{%users}}`.
  */
 class m201019_061204_create_users_table extends Migration
 {
-    private $tableName = '{{%users}}';
     /**
      * {@inheritdoc}
      */
     public function safeUp()
     {
-        $this->createTable($this->tableName, [
+        $table = User::tableName();
+        $this->createTable($table, [
             'id' => 'SERIAL',
             'username' => $this->string(128)->notNull()->unique(),
             'password' => $this->string(128)->notNull(),
@@ -23,24 +25,24 @@ class m201019_061204_create_users_table extends Migration
             'password_reset_token' => $this->string(),
 
         ]);
-        $this->addCommentOnTable( $this->tableName, 'Таблица пользователей');
-        $this->addCommentOnColumn( $this->tableName, 'id', 'Идентификатор записи (неизменяемое)');
-        $this->addCommentOnColumn( $this->tableName, 'username', 'Имя пользователя');
-        $this->addCommentOnColumn( $this->tableName, 'password', 'Пароль');
-        $this->addCommentOnColumn( $this->tableName, 'auth_key', 'Ключ авторизации');
-        $this->addCommentOnColumn( $this->tableName, 'password_reset_token', 'Флаг сброса пароля');
+        $this->addCommentOnTable( $table, 'Таблица пользователей');
+        $this->addCommentOnColumn( $table, 'id', 'Идентификатор записи (неизменяемое)');
+        $this->addCommentOnColumn( $table, 'username', 'Имя пользователя');
+        $this->addCommentOnColumn( $table, 'password', 'Пароль');
+        $this->addCommentOnColumn( $table, 'auth_key', 'Ключ авторизации');
+        $this->addCommentOnColumn( $table, 'password_reset_token', 'Флаг сброса пароля');
         // Создание основного ключа
-        $this->addPrimaryKey('pk-users-id', $this->tableName, 'id');
+        $this->addPrimaryKey('pk-users-id', $table, 'id');
 
         // Добавление администратора
-        $this->insert($this->tableName, [
+        $this->insert($table, [
             'username' => 'admin',
             'password' => Yii::$app->getSecurity()->generatePasswordHash('admin'),
             'access_token' => Yii::$app->getSecurity()->generateRandomString(),
             ]);
 
         // Добавление пользователя
-        $this->insert($this->tableName, [
+        $this->insert($table, [
             'username' => 'user',
             'password' => Yii::$app->getSecurity()->generatePasswordHash('user'),
             'access_token' => Yii::$app->getSecurity()->generateRandomString(),
@@ -53,9 +55,10 @@ class m201019_061204_create_users_table extends Migration
      */
     public function safeDown()
     {
+        $table = User::tableName();
         // Удаление основного ключа
-        $this->dropPrimaryKey('pk-users-id', $this->tableName );
+        $this->dropPrimaryKey('pk-users-id', $table );
         // Удаление таблицы
-        $this->dropTable($this->tableName);
+        $this->dropTable($table);
     }
 }