OSDN Git Service

Попытка использование php 7.0
[invent/invent.git] / migrations / m200810_082546_create_status_table.php
index 8d0510d..5c7b09f 100644 (file)
@@ -2,6 +2,9 @@
 
 use yii\db\Migration;
 
+use app\models\Items;
+use app\models\Status;
+
 /**
  * Handles the creation of table `{{%status}}`.
  * Добавление таблицы состояний оборудования, и свзянного с ним поля в таблицу оборудования
@@ -13,39 +16,39 @@ class m200810_082546_create_status_table extends Migration
      */
     public function safeUp()
     {
+        $status = Status::tableName();
+        $items = Items::tableName();
         // Создание таблицы состояний оборудования
-        $this->createTable('{{%status}}', [
-            "id" => $this->primaryKey(),
-            "id" => "SERIAL",
-            "name" => $this->string(20)->notNull()->unique(),
+        $this->createTable($status, [
+            'id' => 'SERIAL',
+            'name' => $this->string(20)->notNull()->unique()->comment('Состояние'),
         ]);
         // Главный ключ
-        $this->addPrimaryKey("id_status", '{{%status}}', "id");
+        $this->addPrimaryKey('id_status', $status, 'id');
 
         // Добавление описания таблице и колонкам
-        $this->addCommentOnTable('{{%status}}', "Статусы состояния объектов");
-        $this->addCommentOnColumn('{{%status}}', "id", "Номер по порядку");
-        $this->addCommentOnColumn('{{%status}}', "name", "Состояние");
+        $this->addCommentOnTable( $status, 'Статусы состояния объектов');
+        $this->addCommentOnColumn($status, 'id', 'Номер по порядку');
         
         // Создание в таблице оборудования колонки с состоянием
-        $this->addColumn('{{%items}}', "state_id", $this->integer());
-        $this->addCommentOnColumn('{{%items}}', "state_id", "Состояние");
-        $this->createIndex("idx-items-state", '{{%items}}', "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" => "Склад"]);
-        $this->insert('{{%status}}', ["name" => "Работает"]);
-        $ind = Yii::$app->db->getlastInsertID(); // Запомним идентификатор состояния "Работает"
-        $this->insert('{{%status}}', ["name" => "Сломано"]);
-        $this->insert('{{%status}}', ["name" => "Ремонт"]);
-        $this->insert('{{%status}}', ["name" => "К списанию"]);
-        $this->insert('{{%status}}', ["name" => "Списано"]);
+        $this->insert($status, ['name' => 'Склад']);
+        $this->insert($status, ['name' => 'Работает']);
+        $ind = Yii::$app->db->getlastInsertID(); // Запомним идентификатор состояния 'Работает'
+        $this->insert($status, ['name' => 'Сломано']);
+        $this->insert($status, ['name' => 'Ремонт']);
+        $this->insert($status, ['name' => 'К списанию']);
+        $this->insert($status, ['name' => 'Списано']);
         
-        // Всем объектам назначим состояние "Работает"
-        $this->update('{{%items}}', [ "state_id" => $ind ]);
+        // Всем объектам назначим состояние 'Работает'
+        $this->update($items, [ 'state_id' => $ind ]);
 
         // Создадим связь между таблицами оборудования и состояния
-        $this->addForeignKey("fk-items-status-id", '{{%items}}', "state_id", '{{%status}}', "id", "CASCADE");
+        $this->addForeignKey('fk-items-status-id', $items, 'state_id', $status, 'id', 'CASCADE');
     }
 
     /**
@@ -53,18 +56,20 @@ class m200810_082546_create_status_table extends Migration
      */
     public function safeDown()
     {
-        echo "В связи с модификацией алгоритма работы программы от 17.08.2020, отмена миграции невозможна."
+        echo 'В связи с модификацией алгоритма работы программы от 17.08.2020, отмена миграции невозможна.';
         return false;
         
+        $status = Status::tableName();
+        $items = Items::tableName();
         // Удаление связи таблиц items и status
-        $this->dropForeignKey("fk-items-status-id", '{{%items}}');
+        $this->dropForeignKey('fk-items-status-id', $items);
         // Удаление индексации поля состояний в таблице оборудования
-        $this->dropIndex("idx-items-state", '{{%items}}');
+        $this->dropIndex('idx-items-state', $items);
         // Удаление поля состояния в таблице оборудования
-        $this->dropColumn('{{items}}', 'state_id');
+        $this->dropColumn($items, 'state_id');
         // Удаление основного ключа сортировки для таблицы состояний
-        $this->dropPrimaryKey('id_status', '{{%status}}');
+        $this->dropPrimaryKey('id_status', $status);
         // Удаление талицы состояний
-        $this->dropTable('{{%status}}');
+        $this->dropTable($status);
     }
 }