Skip to content

Commit 761c93b

Browse files
authored
Update migrations.md
1 parent b670c8c commit 761c93b

File tree

1 file changed

+33
-54
lines changed

1 file changed

+33
-54
lines changed

migrations.md

Lines changed: 33 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Laravel будет использовать имя миграции, чтобы
2424

2525
Если вы хотите указать собственный путь для сгенерированной миграции, вы можете использовать параметр `--path` при выполнении команды `make:migration`. Указанный путь должен быть относительно базового пути вашего приложения.
2626

27-
> [!NOTE]
27+
> [!NOTE]
2828
> Заготовки (stubs) миграции можно настроить с помощью [публикации заготовок](artisan#stub-customization).
2929
3030
<a name="squashing-migrations"></a>
@@ -41,18 +41,16 @@ php artisan schema:dump --prune
4141

4242
В результате выполнения этой команды Laravel запишет дамп базы данных в каталог `database/schema` вашего приложения. Теперь, при запуске миграции базы данных, Laravel сначала выполнит SQL-операторы дампа (если никакие другие миграции не выполнялись). Затем Laravel выполнит все оставшиеся миграции, которые не были включены в дамп схемы БД.
4343

44-
4544
Если ваши тесты приложения используют другое подключение к базе данных, чем то, которое вы обычно используете во время локальной разработки, убедитесь, что вы создали файл схемы с использованием этого подключения к базе данных, чтобы ваши тесты могли создать базу данных. Вы можете сделать это после создания файла схемы для базы данных, которую обычно используете во время локальной разработки:
4645

4746
```shell
4847
php artisan schema:dump
4948
php artisan schema:dump --database=testing --prune
5049
```
5150

52-
5351
Вы должны передать файл схемы базы данных в систему управления версиями, чтобы другие разработчики вашей команды могли быстро воссоздать исходную структуру базы данных вашего приложения.
5452

55-
> [!WARNING]
53+
> [!WARNING]
5654
> Сжатие миграции доступно только для баз данных MariaDB, MySQL, PostgreSQL и SQLite и использует клиент командной строки базы данных.
5755
5856
<a name="migration-structure"></a>
@@ -90,7 +88,7 @@ php artisan schema:dump --database=testing --prune
9088
{
9189
Schema::drop('flights');
9290
}
93-
}
91+
};
9492

9593
<a name="setting-the-migration-connection"></a>
9694
#### Указание соединения миграции
@@ -168,7 +166,7 @@ php artisan migrate:rollback
168166

169167
```shell
170168
php artisan migrate:rollback --step=5
171-
````
169+
```
172170

173171
Вы можете откатить определенную "партию" миграций, указав опцию `batch` команде `rollback`, где значение опции `batch` соответствует значению партии в таблице `migrations` вашего приложения. Например, следующая команда откатит все миграции в партии третьей:
174172

@@ -196,7 +194,7 @@ php artisan migrate:reset
196194
```shell
197195
php artisan migrate:refresh
198196

199-
// Обновляем базу данных и запускаем все наполнители базы данных ...
197+
// Обновляем базу данных и запускаем все наполнители базы данных...
200198
php artisan migrate:refresh --seed
201199
```
202200

@@ -217,15 +215,13 @@ php artisan migrate:fresh
217215
php artisan migrate:fresh --seed
218216
```
219217

220-
По умолчанию команда `migrate:fresh` удаляет только таблицы из соединения с базой данных по умолчанию.
221-
Однако вы можете использовать опцию `--database`, чтобы указать соединение с базой данных, которое следует использовать.
222-
Имя соединения с базой данных должно соответствовать имени, определенному в [файле конфигурации базы данных](/docs/{{version}}/configuration) вашего приложения:
218+
По умолчанию команда `migrate:fresh` удаляет только таблицы из соединения с базой данных по умолчанию. Однако вы можете использовать опцию `--database`, чтобы указать соединение с базой данных, которое следует использовать. Имя соединения с базой данных должно соответствовать имени, определенному в [файле конфигурации базы данных](/docs/{{version}}/configuration) вашего приложения:
223219

224220
```shell
225221
php artisan migrate:fresh --database=admin
226222
```
227223

228-
> [!WARNING]
224+
> [!WARNING]
229225
> Команда `migrate:fresh` удалит все таблицы базы данных независимо от их префикса. Эту команду следует использовать с осторожностью при разработке в базе данных, которая используется совместно с другими приложениями.
230226
231227
<a name="tables"></a>
@@ -299,17 +295,13 @@ php artisan migrate:fresh --database=admin
299295
// ...
300296
});
301297

302-
Если вы хотите добавить "комментарий" к таблице базы данных, вы можете вызвать метод `comment` на экземпляре таблицы. Комментарии к таблицам поддерживаются только в MariaDB, MySQL и Postgres:
303-
304-
```php
305-
Schema::create('calculations', function (Blueprint $table) {
306-
$table->comment('Business calculations');
298+
Если вы хотите добавить "комментарий" к таблице базы данных, вы можете вызвать метод `comment` на экземпляре таблицы. Комментарии к таблицам поддерживаются только в MariaDB, MySQL и PostgreSQL:
307299

308-
// ...
309-
});
310-
```
300+
Schema::create('calculations', function (Blueprint $table) {
301+
$table->comment('Business calculations');
311302

312-
Этот код позволит вам добавить комментарий "Business calculations" к таблице "calculations" в вашей базе данных. Это может быть полезно для документации и описания цели таблицы.
303+
// ...
304+
});
313305

314306
<a name="updating-tables"></a>
315307
### Обновление таблиц
@@ -555,7 +547,7 @@ Schema::create('calculations', function (Blueprint $table) {
555547

556548
$table->geography('coordinates', subtype: 'point', srid: 4326);
557549

558-
> [!NOTE]
550+
> [!NOTE]
559551
> Поддержка пространственных типов зависит от драйвера вашей базы данных. Пожалуйста, обратитесь к документации вашей базы данных. Если ваше приложение использует базу данных PostgreSQL, вам необходимо установить расширение [PostGIS](https://postgis.net), прежде чем можно будет использовать метод `geography`.
560552
561553
<a name="column-method-geometry"></a>
@@ -565,7 +557,7 @@ Schema::create('calculations', function (Blueprint $table) {
565557

566558
$table->geometry('positions', subtype: 'point', srid: 0);
567559

568-
> [!NOTE]
560+
> [!NOTE]
569561
> Поддержка пространственных типов зависит от драйвера вашей базы данных. Пожалуйста, обратитесь к документации вашей базы данных. Если ваше приложение использует базу данных PostgreSQL, вам необходимо установить расширение [PostGIS](https://postgis.net), прежде чем можно будет использовать метод `geometry`.
570562
571563
<a name="column-method-id"></a>
@@ -683,9 +675,7 @@ Schema::create('calculations', function (Blueprint $table) {
683675

684676
Этот метод аналогичен методу [ulidMorphs](#column-method-ulidMorphs); однако создаваемые столбцы будут "nullable" (допускающими значение null):
685677

686-
```php
687-
$table->nullableUlidMorphs('taggable');
688-
```
678+
$table->nullableUlidMorphs('taggable');
689679

690680
<a name="column-method-nullableUuidMorphs"></a>
691681
#### `nullableUuidMorphs()`
@@ -815,9 +805,8 @@ $table->nullableUlidMorphs('taggable');
815805

816806
Метод `tinyText` создаёт эквивалент столбца `TINYTEXT`:
817807

818-
$table->tinyText('notes');
808+
$table->tinyText('notes');
819809

820-
When utilizing MySQL or MariaDB, you may apply a `binary` character set to the column in order to create a `TINYBLOB` equivalent column:
821810
При использовании MySQL или MariaDB вы можете применить к столбцу `binary` набор символов, чтобы создать эквивалентный столбец `TINYBLOB`:
822811

823812
$table->tinyText('data')->charset('binary'); // TINYBLOB
@@ -880,11 +869,7 @@ When utilizing MySQL or MariaDB, you may apply a `binary` character set to the c
880869

881870
Метод `ulid` создает столбец, эквивалентный `ULID`:
882871

883-
```php
884-
$table->ulid('id');
885-
```
886-
887-
Метод `ulid` создает столбец, эквивалентный `ULID` и присваивает ему имя 'id'.
872+
$table->ulid('id');
888873

889874
<a name="column-method-uuid"></a>
890875
#### `uuid()`
@@ -966,9 +951,9 @@ $table->ulid('id');
966951
$table->timestamps();
967952
});
968953
}
969-
}
954+
};
970955

971-
> [!WARNING]
956+
> [!WARNING]
972957
> Поддержка выражений по умолчанию зависит от вашего драйвера базы данных, версии базы данных и типа поля. См. документацию к вашей базе данных.
973958
974959
<a name="column-order"></a>
@@ -987,19 +972,15 @@ $table->ulid('id');
987972

988973
Метод `change` позволяет вам изменять тип и атрибуты существующих колонок. Например, вы можете захотеть увеличить размер колонки типа `string`. Чтобы увидеть метод `change` в действии, давайте увеличим размер колонки `name` с 25 до 50. Для этого мы просто определяем новое состояние колонки и затем вызываем метод `change`:
989974

990-
```php
991-
Schema::table('users', function (Blueprint $table) {
992-
$table->string('name', 50)->change();
993-
});
994-
```
975+
Schema::table('users', function (Blueprint $table) {
976+
$table->string('name', 50)->change();
977+
});
995978

996979
При изменении колонки вы должны явно включить все модификаторы, которые вы хотите сохранить в определении колонки - любой пропущенный атрибут будет удален. Например, чтобы сохранить атрибуты `unsigned`, `default` и `comment`, вам нужно вызывать каждый модификатор явно при изменении колонки:
997980

998-
```php
999-
Schema::table('users', function (Blueprint $table) {
1000-
$table->integer('votes')->unsigned()->default(1)->comment('мой комментарий')->change();
1001-
});
1002-
```
981+
Schema::table('users', function (Blueprint $table) {
982+
$table->integer('votes')->unsigned()->default(1)->comment('мой комментарий')->change();
983+
});
1003984

1004985
Метод `change` не меняет индексы столбца. Поэтому вы можете использовать модификаторы индекса, чтобы явно добавлять или удалять индекс при изменении столбца:
1005986

@@ -1016,11 +997,9 @@ $table->char('postal_code', 10)->unique(false)->change();
1016997

1017998
Для переименования столбца вы можете использовать метод `renameColumn`, предоставленный строителем схемы:
1018999

1019-
```php
1020-
Schema::table('users', function (Blueprint $table) {
1021-
$table->renameColumn('from', 'to');
1022-
});
1023-
```
1000+
Schema::table('users', function (Blueprint $table) {
1001+
$table->renameColumn('from', 'to');
1002+
});
10241003

10251004
<a name="dropping-columns"></a>
10261005
### Удаление столбцов
@@ -1089,8 +1068,8 @@ Laravel содержит несколько удобных методов, св
10891068
| `$table->primary(['id', 'parent_id']);` | Добавить составной ключ. |
10901069
| `$table->unique('email');` | Добавить уникальный индекс. |
10911070
| `$table->index('state');` | Добавляет простой индекс. |
1092-
| `$table->fulltext('body');` | Добавляет полнотекстовый индекс (MariaDB / MySQL / PostgreSQL). |
1093-
| `$table->fulltext('body')->language('english');` | Добавляет полнотекстовый индекс для указанного языка (PostgreSQL). |
1071+
| `$table->fullText('body');` | Добавляет полнотекстовый индекс (MariaDB / MySQL / PostgreSQL). |
1072+
| `$table->fullText('body')->language('english');` | Добавляет полнотекстовый индекс для указанного языка (PostgreSQL). |
10941073
| `$table->spatialIndex('location');` | Добавляет пространственный индекс (кроме SQLite). |
10951074

10961075
<a name="renaming-indexes"></a>
@@ -1194,10 +1173,10 @@ Laravel также поддерживает создание ограничен
11941173
Schema::disableForeignKeyConstraints();
11951174

11961175
Schema::withoutForeignKeyConstraints(function () {
1197-
// Constraints disabled within this closure...
1176+
// Constraints disabled within this closure...
11981177
});
11991178

1200-
> [!WARNING]
1179+
> [!WARNING]
12011180
> SQLite по умолчанию отключает ограничения внешнего ключа. При использовании SQLite убедитесь, что [включили поддержку внешнего ключа](database#configuration) в вашей конфигурации базы данных, прежде чем пытаться создать их в ваших миграциях.
12021181
12031182
<a name="events"></a>
@@ -1206,7 +1185,7 @@ Laravel также поддерживает создание ограничен
12061185
Для удобства каждая операция миграции отправляет [событие](/docs/{{version}}/events). Все следующие события расширяют базовый класс `Illuminate\Database\Events\MigrationEvent`:
12071186

12081187
| Класс | Описание |
1209-
|--------------------------------------------------|----------------------------------------------------|
1188+
| ------------------------------------------------ | -------------------------------------------------- |
12101189
| `Illuminate\Database\Events\MigrationsStarted` | Вот-вот будет выполнен пакет миграций. |
12111190
| `Illuminate\Database\Events\MigrationsEnded` | Завершено выполнение пакета миграций. |
12121191
| `Illuminate\Database\Events\MigrationStarted` | Одна миграция вот-вот будет выполнена. |

0 commit comments

Comments
 (0)