Skip to content

Commit 949b1f1

Browse files
committed
Merge branch 'master' into step-0.1
2 parents 92a6a9c + 559ed0e commit 949b1f1

File tree

2 files changed

+39
-5
lines changed

2 files changed

+39
-5
lines changed

scripts/steps/step-000.2.md

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -357,11 +357,35 @@ New migration created successfully.
357357
с тем же именем, что и имя файла. Этот класс содержит два метода `up()` и `down()`. Первый описывает, что происходит,
358358
когда миграция применяется, второй - что происходит, когда миграция аннулируется. Код принято писать так, чтобы он работал
359359
для любой СУБД, пусть то 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>.
361361
Этот класс описывает схему, как хранится информация в СУБД. При создании запроса определяется на основании `dns` компонента
362362
`yii\db\Connection`, какую схему нужно использовать. В свою очередь эта схема реализует работу с данными в зависимости от СУБД.
363+
Кроме этого, класс `yii\db\Schema` содержит константы, которые позволяют описывать типы данных:
363364

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+
Миграция для таблицы, которая будет хранить данных из формы "Опрос", выглядит следующим образом(Подробнее в в файле
365389
`yii2-app-advanced/console/migrations/m150428_104828_interview.php`) :
366390

367391
```php
@@ -375,6 +399,14 @@ $this->createTable('{{%interview}}', [
375399
], $tableOptions);
376400
```
377401

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+
378410
С применением миграций мы уже сталкивались, когда создавали таблицу `user`. Применим новую миграцию:
379411

380412
```

scripts/steps/step-001.1.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ Satellite
4141

4242
<p class="alert alert-info">Хорошим тоном служит именовать таблицы в единственном числе на английском языке, например
4343
Planet, но не Planets. Внешние ключи принято называть в сочетании имени и поля таблицы, например "planet_id", а первичные
44-
ключи - "id". <a href="https://toster.ru/q/139295" target="_blank">Подробнее...</a>
44+
ключи - "id". Также лучше называть сущность в lowercase или under_score, т.к. например при работе с PostgreSQL
45+
UpperCase таблицы и поля нужно обрамлять двойными кавычками. <a href="https://toster.ru/q/139295" target="_blank">Подробнее...</a>
4546
</p>
4647

4748
Создадим эти таблицы, через миграцию. Выполните в `yii2-tutorial\yii2-app-advanced`:
@@ -54,7 +55,8 @@ php yii migrate/create create_asto_tables
5455
New migration created successfully.
5556
```
5657

57-
Приведём код миграции к следующему виду:
58+
Новая миграция создана в `\yii2-tutorial\yii2-app-advanced\console\migrations\m150620_054003_create_asto_tables.php`
59+
Приведём её код к следующему виду:
5860

5961
```php
6062
<?php
@@ -117,7 +119,7 @@ class m150513_054155_create_asto_tables extends Migration
117119
```
118120

119121
Обратите внимание, что имена таблиц имеют вид `"{{%name}}"`. Это необходимо, если вы захотите использовать префикс в
120-
именах таблиц, который можно установить через конфигурацию компонента `db`:
122+
именах таблиц, который можно установить через конфигурацию компонента `db` в `\yii2-tutorial\yii2-app-advanced\common\config\main-local.php`:
121123

122124
```php
123125
'db' => [

0 commit comments

Comments
 (0)