You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: migrations.md
+33-54Lines changed: 33 additions & 54 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@ Laravel будет использовать имя миграции, чтобы
24
24
25
25
Если вы хотите указать собственный путь для сгенерированной миграции, вы можете использовать параметр `--path` при выполнении команды `make:migration`. Указанный путь должен быть относительно базового пути вашего приложения.
26
26
27
-
> [!NOTE]
27
+
> [!NOTE]
28
28
> Заготовки (stubs) миграции можно настроить с помощью [публикации заготовок](artisan#stub-customization).
В результате выполнения этой команды Laravel запишет дамп базы данных в каталог `database/schema` вашего приложения. Теперь, при запуске миграции базы данных, Laravel сначала выполнит SQL-операторы дампа (если никакие другие миграции не выполнялись). Затем Laravel выполнит все оставшиеся миграции, которые не были включены в дамп схемы БД.
43
43
44
-
45
44
Если ваши тесты приложения используют другое подключение к базе данных, чем то, которое вы обычно используете во время локальной разработки, убедитесь, что вы создали файл схемы с использованием этого подключения к базе данных, чтобы ваши тесты могли создать базу данных. Вы можете сделать это после создания файла схемы для базы данных, которую обычно используете во время локальной разработки:
Вы должны передать файл схемы базы данных в систему управления версиями, чтобы другие разработчики вашей команды могли быстро воссоздать исходную структуру базы данных вашего приложения.
54
52
55
-
> [!WARNING]
53
+
> [!WARNING]
56
54
> Сжатие миграции доступно только для баз данных MariaDB, MySQL, PostgreSQL и SQLite и использует клиент командной строки базы данных.
Вы можете откатить определенную "партию" миграций, указав опцию `batch` команде `rollback`, где значение опции `batch` соответствует значению партии в таблице `migrations` вашего приложения. Например, следующая команда откатит все миграции в партии третьей:
174
172
@@ -196,7 +194,7 @@ php artisan migrate:reset
196
194
```shell
197
195
php artisan migrate:refresh
198
196
199
-
// Обновляем базу данных и запускаем все наполнители базы данных...
197
+
// Обновляем базу данных и запускаем все наполнители базы данных...
200
198
php artisan migrate:refresh --seed
201
199
```
202
200
@@ -217,15 +215,13 @@ php artisan migrate:fresh
217
215
php artisan migrate:fresh --seed
218
216
```
219
217
220
-
По умолчанию команда `migrate:fresh` удаляет только таблицы из соединения с базой данных по умолчанию.
221
-
Однако вы можете использовать опцию `--database`, чтобы указать соединение с базой данных, которое следует использовать.
222
-
Имя соединения с базой данных должно соответствовать имени, определенному в [файле конфигурации базы данных](/docs/{{version}}/configuration) вашего приложения:
218
+
По умолчанию команда `migrate:fresh` удаляет только таблицы из соединения с базой данных по умолчанию. Однако вы можете использовать опцию `--database`, чтобы указать соединение с базой данных, которое следует использовать. Имя соединения с базой данных должно соответствовать имени, определенному в [файле конфигурации базы данных](/docs/{{version}}/configuration) вашего приложения:
223
219
224
220
```shell
225
221
php artisan migrate:fresh --database=admin
226
222
```
227
223
228
-
> [!WARNING]
224
+
> [!WARNING]
229
225
> Команда `migrate:fresh` удалит все таблицы базы данных независимо от их префикса. Эту команду следует использовать с осторожностью при разработке в базе данных, которая используется совместно с другими приложениями.
Если вы хотите добавить "комментарий" к таблице базы данных, вы можете вызвать метод `comment` на экземпляре таблицы. Комментарии к таблицам поддерживаются только в MariaDB, MySQL и Postgres:
Если вы хотите добавить "комментарий" к таблице базы данных, вы можете вызвать метод `comment` на экземпляре таблицы. Комментарии к таблицам поддерживаются только в MariaDB, MySQL и PostgreSQL:
307
299
308
-
// ...
309
-
});
310
-
```
300
+
Schema::create('calculations', function (Blueprint $table) {
301
+
$table->comment('Business calculations');
311
302
312
-
Этот код позволит вам добавить комментарий "Business calculations" к таблице "calculations" в вашей базе данных. Это может быть полезно для документации и описания цели таблицы.
303
+
// ...
304
+
});
313
305
314
306
<aname="updating-tables"></a>
315
307
### Обновление таблиц
@@ -555,7 +547,7 @@ Schema::create('calculations', function (Blueprint $table) {
> Поддержка пространственных типов зависит от драйвера вашей базы данных. Пожалуйста, обратитесь к документации вашей базы данных. Если ваше приложение использует базу данных PostgreSQL, вам необходимо установить расширение [PostGIS](https://postgis.net), прежде чем можно будет использовать метод `geography`.
560
552
561
553
<aname="column-method-geometry"></a>
@@ -565,7 +557,7 @@ Schema::create('calculations', function (Blueprint $table) {
> Поддержка пространственных типов зависит от драйвера вашей базы данных. Пожалуйста, обратитесь к документации вашей базы данных. Если ваше приложение использует базу данных PostgreSQL, вам необходимо установить расширение [PostGIS](https://postgis.net), прежде чем можно будет использовать метод `geometry`.
570
562
571
563
<aname="column-method-id"></a>
@@ -683,9 +675,7 @@ Schema::create('calculations', function (Blueprint $table) {
683
675
684
676
Этот метод аналогичен методу [ulidMorphs](#column-method-ulidMorphs); однако создаваемые столбцы будут "nullable" (допускающими значение null):
@@ -880,11 +869,7 @@ When utilizing MySQL or MariaDB, you may apply a `binary` character set to the c
880
869
881
870
Метод `ulid` создает столбец, эквивалентный `ULID`:
882
871
883
-
```php
884
-
$table->ulid('id');
885
-
```
886
-
887
-
Метод `ulid` создает столбец, эквивалентный `ULID` и присваивает ему имя 'id'.
872
+
$table->ulid('id');
888
873
889
874
<aname="column-method-uuid"></a>
890
875
#### `uuid()`
@@ -966,9 +951,9 @@ $table->ulid('id');
966
951
$table->timestamps();
967
952
});
968
953
}
969
-
}
954
+
};
970
955
971
-
> [!WARNING]
956
+
> [!WARNING]
972
957
> Поддержка выражений по умолчанию зависит от вашего драйвера базы данных, версии базы данных и типа поля. См. документацию к вашей базе данных.
973
958
974
959
<aname="column-order"></a>
@@ -987,19 +972,15 @@ $table->ulid('id');
987
972
988
973
Метод `change` позволяет вам изменять тип и атрибуты существующих колонок. Например, вы можете захотеть увеличить размер колонки типа `string`. Чтобы увидеть метод `change` в действии, давайте увеличим размер колонки `name` с 25 до 50. Для этого мы просто определяем новое состояние колонки и затем вызываем метод `change`:
989
974
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
+
});
995
978
996
979
При изменении колонки вы должны явно включить все модификаторы, которые вы хотите сохранить в определении колонки - любой пропущенный атрибут будет удален. Например, чтобы сохранить атрибуты `unsigned`, `default` и `comment`, вам нужно вызывать каждый модификатор явно при изменении колонки:
997
980
998
-
```php
999
-
Schema::table('users', function (Blueprint $table) {
Метод `change` не меняет индексы столбца. Поэтому вы можете использовать модификаторы индекса, чтобы явно добавлять или удалять индекс при изменении столбца:
> SQLite по умолчанию отключает ограничения внешнего ключа. При использовании SQLite убедитесь, что [включили поддержку внешнего ключа](database#configuration) в вашей конфигурации базы данных, прежде чем пытаться создать их в ваших миграциях.
1202
1181
1203
1182
<aname="events"></a>
@@ -1206,7 +1185,7 @@ Laravel также поддерживает создание ограничен
1206
1185
Для удобства каждая операция миграции отправляет [событие](/docs/{{version}}/events). Все следующие события расширяют базовый класс `Illuminate\Database\Events\MigrationEvent`:
0 commit comments