@@ -357,11 +357,35 @@ New migration created successfully.
357
357
с тем же именем, что и имя файла. Этот класс содержит два метода ` up() ` и ` down() ` . Первый описывает, что происходит,
358
358
когда миграция применяется, второй - что происходит, когда миграция аннулируется. Код принято писать так, чтобы он работал
359
359
для любой СУБД, пусть то MySQL, PostgreSQL, SQlite или другая. Для того, чтобы писать универсальный код для всех СУБД
360
- в Yii реализован <a href =" http://www.yiiframework.com/doc-2.0/yii-db-schema.html " targer =" _blank " >абстрактный класс yii\db\Schema</a >.
360
+ в Yii реализован <a href =" http://www.yiiframework.com/doc-2.0/yii-db-schema.html " target =" _blank " >абстрактный класс yii\db\Schema</a >.
361
361
Этот класс описывает схему, как хранится информация в СУБД. При создании запроса определяется на основании ` dns ` компонента
362
362
` yii\db\Connection ` , какую схему нужно использовать. В свою очередь эта схема реализует работу с данными в зависимости от СУБД.
363
+ Кроме этого, класс ` yii\db\Schema ` содержит константы, которые позволяют описывать типы данных:
363
364
364
- Миграция для таблицы, которая будет храненить данных из формы "Опрос", выглядит следующим образом(Подробнее в в файле
365
+ ``` php
366
+ /**
367
+ * Поддерживаемые типы данных для описания колонок.
368
+ */
369
+ const TYPE_PK = 'pk';
370
+ const TYPE_BIGPK = 'bigpk';
371
+ const TYPE_STRING = 'string';
372
+ const TYPE_TEXT = 'text';
373
+ const TYPE_SMALLINT = 'smallint';
374
+ const TYPE_INTEGER = 'integer';
375
+ const TYPE_BIGINT = 'bigint';
376
+ const TYPE_FLOAT = 'float';
377
+ const TYPE_DOUBLE = 'double';
378
+ const TYPE_DECIMAL = 'decimal';
379
+ const TYPE_DATETIME = 'datetime';
380
+ const TYPE_TIMESTAMP = 'timestamp';
381
+ const TYPE_TIME = 'time';
382
+ const TYPE_DATE = 'date';
383
+ const TYPE_BINARY = 'binary';
384
+ const TYPE_BOOLEAN = 'boolean';
385
+ const TYPE_MONEY = 'money';
386
+ ```
387
+
388
+ Миграция для таблицы, которая будет хранить данных из формы "Опрос", выглядит следующим образом(Подробнее в в файле
365
389
` yii2-app-advanced/console/migrations/m150428_104828_interview.php ` ) :
366
390
367
391
``` php
@@ -375,6 +399,14 @@ $this->createTable('{{%interview}}', [
375
399
], $tableOptions);
376
400
```
377
401
402
+ Обратите внимание, что для описания типов данных используется не только константы, но и ключевые слова, например ` . ' NOT NULL' ` .
403
+ Вы можете дополнять типы данных ключевыми словами до нужного вам состояния.
404
+
405
+ <p class =" alert alert-info " >
406
+ Ключевое слова ` Unsigned ` не рекомендуется использовать в миграциях -
407
+ <a href =" https://github.com/yiisoft/yii2/issues/1032 " target =" _blank " >обсуждение на GitHub</a >.
408
+ </p >
409
+
378
410
С применением миграций мы уже сталкивались, когда создавали таблицу ` user ` . Применим новую миграцию:
379
411
380
412
```
0 commit comments