Unsigned laravel Ρ‡Ρ‚ΠΎ это

Laravel Framework Russian Community

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Класс Schema прСдставляСт собой нСзависимый ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π‘Π” интСрфСйс манипулирования Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ. Он Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со всСми Π‘Π”, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌΠΈ Laravel ΠΈ прСдоставляСт ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ API для любой ΠΈΠ· этих систСм.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†

Для создания Π½ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Schema::create :

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ rename :

Для указания ΠΈΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π‘Π” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Schema::connection :

Для удалСния Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Schema::drop :

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ

Для измСнСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Schema::table :

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ Ρ‚Π°Π±Π»ΠΈΡ† ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎΠ»Π΅ΠΉ:

Вставка поля послС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ (Π² MySQL)

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ MySQL, Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΡƒΠ΄Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅

ИзмСнСниС полСй

Π’Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ ΠΏΠΎΠ»Π΅ Π±Ρ‹Ρ‚ΡŒ NULL:

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ поля ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ сразу Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° сущСствованиС

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сущСствования Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сущСствования поля

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ индСксов

Π•ΡΡ‚ΡŒ Π΄Π²Π° способа Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ индСксы: вмСстС с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»Π΅ΠΉ, Π»ΠΈΠ±ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ:

НиТС список всСх доступных Ρ‚ΠΈΠΏΠΎΠ² индСксов.

КомандаОписаниС
$table->primary(‘id’);ДобавляСт ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡
$table->primary(array(‘first’, ‘last’));ДобавляСт составной ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡
$table->unique(’email’);ДобавляСт ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ индСкс
$table->index(‘state’);ДобавляСт простой индСкс

Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡ΠΈ

Laravel ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (foreign key constraints) для Ρ‚Π°Π±Π»ΠΈΡ†:

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ дСйствия, происходящиС ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ (on update) ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ (on delete) записСй.

УдалСниС индСксов

Для удалСния индСкса Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π³ΠΎ имя. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Laravel присваиваСт ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ индСксу осознанноС имя. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΈΠΌΠ΅Π½Π° всСх Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ‚ΠΈΠΏ индСкса. Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:

CommandDescription
$table->dropPrimary(‘users_id_primary’);Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ «users»
$table->dropUnique(‘users_email_unique’);Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ индСкса Π½Π° полях «email» ΠΈ «password» ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ «users»
$table->dropIndex(‘geo_state_index’);Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ простого индСкса ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ «geo»

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ столбцов Π΄Π°Ρ‚ создания ΠΈ псСвдоудалСния

КомандаОписания
$table->dropTimestamps();Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ столбцов created_at ΠΈ updated_at
$table->dropSoftDeletes();Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ столбца deleted_at

Storage Engines (систСмы хранСния)

Для задания ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ систСмы хранСния Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ установитС свойство engine ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° конструктора:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Laravel Framework Russian Community

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ (Introduction)

ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° систСму контроля вСрсиий, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (Π‘Π”). Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ схСму Π‘Π” прилоТСния ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ этими измСнСниями. ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ связаны с построитСлСм схСм Laravel (Laravel’s schema builder) для облСгчСния создания схСмы Π‘Π” прилоТСния.

Laravel Schema facade прСдоставляСт Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ ΠΎΡ‚ Π‘Π” ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ создания ΠΈ управлСния Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ. Она прСдоставляСт Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ API для всСх ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Laravel Π‘Π”.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ (Generating Migrations)

Для создания ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ make:migration Artisan command:

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ (Migration Structure)

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±ΠΎΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ конструктор схСм для создания ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ†. Для изучСния всСх ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², доступных Π² конструкторС, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ check out its documentation. Π”Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ, которая создаСт Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ flights :

Запуск ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ (Running Migrations)

Если Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ сообщСниС ΠΎΠ± ошибкС «class not found» Π²ΠΎ врСмя запуска, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ composer dump-autoload ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ вновь Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ.

ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅ (Forcing Migrations To Run In Production)

НСкоторыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ цСлях Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ запуска Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ. Для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ Π±Π΅Π· подтвСрТдСния ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ„Π»Π°Π³ force :

ΠžΡ‚ΠΊΠ°Ρ‚ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ (Rolling Back Migrations)

Команда migrate:reset ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ всС ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ:

ΠžΡ‚ΠΊΠ°Ρ‚/запуск ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ (Rollback / Migrate In Single Command)

НаписаниС ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ (Writing Migrations)

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† (Creating Tables)

Для опрСдСлСния столбцов Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ конструктора схСм column methods.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сущСствования Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹/столбца (Checking For Table / Column Existence)

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сущСствуСт Π»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠ»ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ hasTable ΠΈ hasColumn :

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π”Π²ΠΈΠΆΠΎΠΊ Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° (Connection & Storage Engine)

Если трСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΎΡ‚ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½ΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ connection :

Для установки Π΄Π²ΠΈΠΆΠΊΠ° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π·Π°Π΄Π°ΠΉΡ‚Π΅ свойство engine :

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅/ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† (Renaming / Dropping Tables)

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ столбцов (Creating Columns)

ДоступныС Ρ‚ΠΈΠΏΡ‹ столбцов (Available Column Types)

ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ доступных Ρ‚ΠΈΠΏΠΎΠ² Π² классС конструкторС схСмы:

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ столбцов (Column Modifiers)

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Ρ‚ΠΈΠΏΠ°ΠΌ, пСрСчислСнным Π²Ρ‹ΡˆΠ΅, доступны ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ столбцов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ столбца. Π”ΠΎΠ±Π°Π²ΠΈΠΌ столбцу Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ значСния NULL:

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ список доступных ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ². Бписок Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ индСксныС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ index modifiers:

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
->first()Place the column «first» in the table (MySQL Only)
->after(‘column’)Place the column «after» another column (MySQL Only)
->nullable()Allow NULL values to be inserted into the column
->default($value)Specify a «default» value for the column
->unsigned()Set integer columns to UNSIGNED

ИзмСнСниС столбцов (Modifying Columns)

НСобходимыС условия (Prerequisites)

ОбновлСниС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² столбца (Updating Column Attributes)

ΠœΠ΅Ρ‚ΠΎΠ΄ change мСняСт Ρ‚ΠΈΠΏ столбца Π»ΠΈΠ±ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹. НапримСр, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ строкового столбца name с 25 Π΄ΠΎ 50:

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ вставку Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ NULL:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ИзмСнСниС столбцов с Ρ‚ΠΈΠΏΠΎΠΌ enum Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ поддСрТиваСтся.

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ столбцов (Renaming Columns)

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ столбцов Ρ‚ΠΈΠΏΠ° enum Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ поддСрТиваСтся.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ столбцов (Dropping Columns)

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… столбцов:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅/ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… столбцов Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ для Π‘Π£Π‘Π” SQLite Π½Π΅ поддСрТиваСтся.

БозданиС индСксов (Creating Indexes)

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ индСкса для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ столбца:

ИндСкс Π½Π° основС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… столбцов:

Laravel автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ имя индСкса, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π³ΠΎ самому Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

ДоступныС Ρ‚ΠΈΠΏΠ° индСксов (Available Index Types)

КомандаОписаниС
$table->primary(‘id’);Add a primary key.
$table->primary([‘first’, ‘last’]);Add composite keys.
$table->unique(’email’);Add a unique index.
$table->unique(‘state’, ‘my_index_name’);Add a custom index name.
$table->index(‘state’);Add a basic index.

УдалСниС индСксов (Dropping Indexes)

Для ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ индСкса Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя индСкса. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Laravel создаСт имя для индСкса, соСдиняя имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, имя столбца ΠΈ Ρ‚ΠΈΠΏ индСкса. НСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:

КомандаОписаниС
$table->dropPrimary(‘users_id_primary’);Π£Π΄Π°Π»ΠΈΡ‚ΡŒ primary key ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ «users».
$table->dropUnique(‘users_email_unique’);Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ индСкс ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ «users».
$table->dropIndex(‘geo_state_index’);Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ индСкс ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ «geo».

Если ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ для удалСния ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ массив столбцов для удалСния индСкса, Ρ‚ΠΎ имя индСкса Π±ΡƒΠ΄Π΅Ρ‚ сформировано автоматичСски:

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ внСшнСго ΠΊΠ»ΡŽΡ‡Π° (Foreign Key Constraints)

Π—Π°Π΄Π°Ρ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ дСйствиС для свойств «on delete» ΠΈ «on update» внСшнСго ΠΊΠ»ΡŽΡ‡Π°:

ΠŸΡ€ΠΈ создании ΠΈΠΌΠ΅Π½ΠΈ внСшнСго ΠΊΠ»ΡŽΡ‡Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎ ΠΆΠ΅ соглашСниС ΠΎ присвоСнии ΠΈΠΌΠ΅Π½, Ρ‡Ρ‚ΠΎ ΠΈ для индСксов. Laravel Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ имя Π½Π° основС ΠΈΠΌΠ΅Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, столбца ΠΈ суффикса «_foreign». Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ внСшнСго ΠΊΠ»ΡŽΡ‡Π°:

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Π·Π°Π΄Π°Π½ΠΈΠΈ столбца Π² массивС, Ρ‡Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ имя удаляСмого ΠΊΠ»ΡŽΡ‡Π° автоматичСски:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Schema Builder

Introduction

The Laravel Schema class provides a database agnostic way of manipulating tables. It works well with all of the databases supported by Laravel, and has a unified API across all of these systems.

Creating & Dropping Tables

To create a new database table, the Schema::create method is used:

The first argument passed to the create method is the name of the table, and the second is a Closure which will receive a Blueprint object which may be used to define the new table.

To rename an existing database table, the rename method may be used:

To specify which connection the schema operation should take place on, use the Schema::connection method:

To drop a table, you may use the Schema::drop method:

Adding Columns

To update an existing table, we will use the Schema::table method:

The table builder contains a variety of column types that you may use when building your tables:

Using After On MySQL

If you are using the MySQL database, you may use the after method to specify the order of columns:

Renaming Columns

To rename a column, you may use the renameColumn method on the Schema builder. Before renaming a column, be sure to add the doctrine/dbal dependency to your composer.json file.

Note: Renaming enum column types is not supported.

Dropping Columns

To drop a column, you may use the dropColumn method on the Schema builder. Before dropping a column, be sure to add the doctrine/dbal dependency to your composer.json file.

Dropping A Column From A Database Table

Dropping Multiple Columns From A Database Table

Checking Existence

Checking For Existence Of Table

You may easily check for the existence of a table or column using the hasTable and hasColumn methods:

Checking For Existence Of Columns

Adding Indexes

The schema builder supports several types of indexes. There are two ways to add them. First, you may fluently define them on a column definition, or you may add them separately:

Or, you may choose to add the indexes on separate lines. Below is a list of all available index types:

CommandDescription
$table->primary(‘id’);Adding a primary key
$table->primary(array(‘first’, ‘last’));Adding composite keys
$table->unique(’email’);Adding a unique index
$table->index(‘state’);Adding a basic index

Foreign Keys

Laravel also provides support for adding foreign key constraints to your tables:

In this example, we are stating that the user_id column references the id column on the users table. Make sure to create the foreign key column first!

You may also specify options for the «on delete» and «on update» actions of the constraint:

To drop a foreign key, you may use the dropForeign method. A similar naming convention is used for foreign keys as is used for other indexes:

Dropping Indexes

To drop an index you must specify the index’s name. Laravel assigns a reasonable name to the indexes by default. Simply concatenate the table name, the names of the column in the index, and the index type. Here are some examples:

CommandDescription
$table->dropPrimary(‘users_id_primary’);Dropping a primary key from the «users» table
$table->dropUnique(‘users_email_unique’);Dropping a unique index from the «users» table
$table->dropIndex(‘geo_state_index’);Dropping a basic index from the «geo» table

Dropping Timestamps & SoftDeletes

CommandDescription
$table->dropTimestamps();Dropping the created_at and updated_at columns from the table
$table->dropSoftDeletes();Dropping deleted_at column from the table

Storage Engines

To set the storage engine for a table, set the engine property on the schema builder:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Laravel 8 Β· Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Β· ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий для вашСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ вашСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ схСмы Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… прилоТСния ΠΈ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Если Π²Π°ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰Ρƒ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ столбСц Π² Π΅Π³ΠΎ схСму локальной Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… послС примСнСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² систСмС управлСния вСрсиями, Ρ‚ΠΎ Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ миграция Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Ѐасад Schema обСспСчиваСт Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ ΠΎΡ‚ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ для создания ΠΈ управлСния Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π²ΠΎ всСх ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Laravel систСмах Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ситуации, этот фасад ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΈ измСнСния Ρ‚Π°Π±Π»ΠΈΡ† / столбцов Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ врСмя ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ.

ГСнСрация ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ make:migration Artisan. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° помСстит Π½ΠΎΠ²Ρ‹ΠΉ класс ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ database/migrations вашСго прилоТСния. КаТдоС имя Ρ„Π°ΠΉΠ»Π° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ содСрТит Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΊΡƒ, которая позволяСт Laravel ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ порядок примСнСния ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ:

Laravel Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ имя ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡƒΠ³Π°Π΄Π°Ρ‚ΡŒ имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ миграция ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ. Если Laravel ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ сгСнСрированный Ρ„Π°ΠΉΠ» ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ.

Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ

По ΠΌΠ΅Ρ€Π΅ создания прилоТСния Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Ρ‚ΡŒ всС большС ΠΈ большС ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ваш ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ database/migrations станСт Ρ€Π°Π·Π΄ΡƒΡ‚Ρ‹ΠΌ ΠΈΠ·-Π·Π° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ сотСн ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ. Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Β«ΡΠΆΠ°Ρ‚ΡŒΒ» свои ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» SQL. Для Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ schema:dump :

Когда Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Laravel Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ Ρ„Π°ΠΉΠ» «схСмы» Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ database/schema вашСго прилоТСния. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ пСрСнСсти свою Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Laravel сначала Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ SQL-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Ρ„Π°ΠΉΠ»Π° схСмы, ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ. ПослС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ Ρ„Π°ΠΉΠ»Π° схСмы, Laravel Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ всС ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Π΄Π°ΠΌΠΏ схСмы Π‘Π”.

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» схСмы Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² систСму управлСния вСрсиями, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π² вашСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΌΠΎΠ³Π»ΠΈ быстро Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ структуру Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… вашСго прилоТСния.

Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ доступно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… MySQL, PostgreSQL ΠΈ SQLite ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π°ΠΌΠΏΡ‹ схСмы Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ восстановлСны Π² Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… SQLite, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π² памяти.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ

Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ соСдинСния ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ

Запуск ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ всС Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ migrate Artisan:

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΡƒΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ migrate:status Artisan:

ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ запуск ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ

ΠžΡ‚ΠΊΠ°Ρ‚ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ послСднюю ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ rollback Artisan. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ послСдний Β«ΠΏΠ°ΠΊΠ΅Ρ‚Β» ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ:

Команда migrate:reset ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ всС ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ вашСго прилоТСния:

ΠžΡ‚ΠΊΠ°Ρ‚ ΠΈ миграция с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ всСх Ρ‚Π°Π±Π»ΠΈΡ† с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ

Команда migrate:fresh ΡƒΠ΄Π°Π»ΠΈΡ‚ всС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ migrate :

Команда migrate:fresh ΡƒΠ΄Π°Π»ΠΈΡ‚ всС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… нСзависимо ΠΎΡ‚ ΠΈΡ… прСфикса. Π­Ρ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ совмСстно с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ прилоТСниями.

Π’Π°Π±Π»ΠΈΡ†Ρ‹

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†

ΠŸΡ€ΠΈ создании Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² столбцов построитСля схСмы для опрСдСлСния столбцов Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ / столбца

Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ схСмы с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ являСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для вашСго прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ connection :

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для опрСдСлСния Π΄Ρ€ΡƒΠ³ΠΈΡ… аспСктов создания Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Бвойство engine ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для указания ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° хранСния Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΡ€ΠΈ использовании MySQL:

Бвойства charset ΠΈ collation ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для указания Π½Π°Π±ΠΎΡ€Π° символов ΠΈ сопоставлСния для создаваСмой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΡ€ΠΈ использовании MySQL:

ΠœΠ΅Ρ‚ΠΎΠ΄ temporary ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Β«Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉΒ». Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²ΠΈΠ΄Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ сСансу соСдинСния Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ автоматичСски ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ соСдинСния:

ОбновлСниС Ρ‚Π°Π±Π»ΠΈΡ†

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ / ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ rename :

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ drop ΠΈΠ»ΠΈ dropIfExists :

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† с внСшними ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ

ΠŸΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π»ΡŽΠ±Ρ‹Π΅ ограничСния внСшнСго ΠΊΠ»ΡŽΡ‡Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ явноС имя Π² Π²Π°ΡˆΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ‚ΡŒ Laravel Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ имя Π½Π° основС соглашСния. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, имя ограничСния внСшнСго ΠΊΠ»ΡŽΡ‡Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° имя старой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Π‘Ρ‚ΠΎΠ»Π±Ρ†Ρ‹

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ столбцов

ДоступныС Ρ‚ΠΈΠΏΡ‹ столбцов

ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒ схСм Blueprint ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ мноТСство ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ столбцов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ВсС доступныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ пСрСчислСны Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅:

bigIncrements()

ΠœΠ΅Ρ‚ΠΎΠ΄ bigIncrements создаСт эквивалСнт Π°Π²Ρ‚ΠΎΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ столбца UNSIGNED BIGINT (ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡):

bigInteger()

ΠœΠ΅Ρ‚ΠΎΠ΄ bigInteger создаСт эквивалСнт столбца BIGINT :

binary()

ΠœΠ΅Ρ‚ΠΎΠ΄ binary создаСт эквивалСнт столбца BLOB :

boolean()

ΠœΠ΅Ρ‚ΠΎΠ΄ boolean создаСт эквивалСнт столбца BOOLEAN :

ΠœΠ΅Ρ‚ΠΎΠ΄ char создаСт эквивалСнт столбца CHAR ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹:

dateTimeTz()

ΠœΠ΅Ρ‚ΠΎΠ΄ dateTimeTz создаСт эквивалСнт столбца DATETIME (с часовым поясом) с Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (ΠΎΠ±Ρ‰Π΅Π΅ количСство Ρ†ΠΈΡ„Ρ€):

dateTime()

ΠœΠ΅Ρ‚ΠΎΠ΄ dateTime создаСт эквивалСнт столбца DATETIME с Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (ΠΎΠ±Ρ‰Π΅Π΅ количСство Ρ†ΠΈΡ„Ρ€):

ΠœΠ΅Ρ‚ΠΎΠ΄ date создаСт эквивалСнт столбца DATE :

decimal()

ΠœΠ΅Ρ‚ΠΎΠ΄ decimal создаСт эквивалСнт столбца DECIMAL с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (ΠΎΠ±Ρ‰Π΅Π΅ количСство Ρ†ΠΈΡ„Ρ€) ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠΌ (дСсятичныС Ρ†ΠΈΡ„Ρ€Ρ‹):

double()

ΠœΠ΅Ρ‚ΠΎΠ΄ double создаСт эквивалСнт столбца DOUBLE с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (ΠΎΠ±Ρ‰Π΅Π΅ количСство Ρ†ΠΈΡ„Ρ€) ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠΌ (дСсятичныС Ρ†ΠΈΡ„Ρ€Ρ‹):

ΠœΠ΅Ρ‚ΠΎΠ΄ enum создаСт эквивалСнт столбца ENUM с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

float()

ΠœΠ΅Ρ‚ΠΎΠ΄ float создаСт эквивалСнт столбца FLOAT с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (ΠΎΠ±Ρ‰Π΅Π΅ количСство Ρ†ΠΈΡ„Ρ€) ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠΌ (дСсятичныС Ρ†ΠΈΡ„Ρ€Ρ‹):

foreignId()

ΠœΠ΅Ρ‚ΠΎΠ΄ foreignId являСтся псСвдонимом ΠΌΠ΅Ρ‚ΠΎΠ΄Π° unsignedBigInteger :

geometryCollection()

ΠœΠ΅Ρ‚ΠΎΠ΄ geometryCollection создаСт эквивалСнт столбца GEOMETRYCOLLECTION :

geometry()

ΠœΠ΅Ρ‚ΠΎΠ΄ geometry создаСт эквивалСнт столбца GEOMETRY :

increments()

ΠœΠ΅Ρ‚ΠΎΠ΄ increments создаСт эквивалСнт Π°Π²Ρ‚ΠΎΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ столбца UNSIGNED INTEGER Π² качСствС ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°:

integer()

ΠœΠ΅Ρ‚ΠΎΠ΄ integer создаСт эквивалСнт столбца INTEGER :

ipAddress()

ΠœΠ΅Ρ‚ΠΎΠ΄ ipAddress создаСт эквивалСнт столбца INTEGER :

ΠœΠ΅Ρ‚ΠΎΠ΄ json создаСт эквивалСнт столбца JSON :

jsonb()

ΠœΠ΅Ρ‚ΠΎΠ΄ jsonb создаСт эквивалСнт столбца JSONB :

lineString()

ΠœΠ΅Ρ‚ΠΎΠ΄ lineString создаСт эквивалСнт столбца LINESTRING :

longText()

ΠœΠ΅Ρ‚ΠΎΠ΄ longText создаСт эквивалСнт столбца LONGTEXT :

macAddress()

ΠœΠ΅Ρ‚ΠΎΠ΄ macAddress создаСт столбСц, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для хранСния MAC-адрСса. НСкоторыС систСмы Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ PostgreSQL, ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ столбца для этого Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Π”Ρ€ΡƒΠ³ΠΈΠ΅ систСмы Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ столбСц строкового эквивалСнта:

mediumIncrements()

ΠœΠ΅Ρ‚ΠΎΠ΄ mediumIncrements создаСт эквивалСнт Π°Π²Ρ‚ΠΎΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ столбца UNSIGNED MEDIUMINT Π² качСствС ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°:

mediumInteger()

ΠœΠ΅Ρ‚ΠΎΠ΄ mediumInteger создаСт эквивалСнт столбца MEDIUMINT :

mediumText()

ΠœΠ΅Ρ‚ΠΎΠ΄ mediumText создаСт эквивалСнт столбца MEDIUMTEXT :

morphs()

ΠœΠ΅Ρ‚ΠΎΠ΄ morphs – это ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ добавляСт эквивалСнт столбца UNSIGNED BIGINT ( _id ) ΠΈ эквивалСнт столбца VARCHAR ( _type ).

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ столбцов, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Eloquent. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄ΡƒΡ‚ созданы столбцы taggable_id ΠΈ taggable_type :

multiLineString()

ΠœΠ΅Ρ‚ΠΎΠ΄ multiLineString создаСт эквивалСнт столбца MULTILINESTRING :

multiPoint()

ΠœΠ΅Ρ‚ΠΎΠ΄ multiPoint создаСт эквивалСнт столбца MULTIPOINT :

multiPolygon()

ΠœΠ΅Ρ‚ΠΎΠ΄ multiPolygon создаСт эквивалСнт столбца MULTIPOLYGON :

nullableTimestamps()

ΠœΠ΅Ρ‚ΠΎΠ΄ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ timestamps ; Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, создаваСмый столбСц Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL:

nullableMorphs()

ΠœΠ΅Ρ‚ΠΎΠ΄ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ morphs ; Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, создаваСмый столбСц Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL:

nullableUuidMorphs()

ΠœΠ΅Ρ‚ΠΎΠ΄ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ uuidMorphs ; Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, создаваСмый столбСц Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL:

point()

ΠœΠ΅Ρ‚ΠΎΠ΄ point создаСт эквивалСнт столбца POINT :

polygon()

ΠœΠ΅Ρ‚ΠΎΠ΄ polygon создаСт эквивалСнт столбца POLYGON :

rememberToken()

ΠœΠ΅Ρ‚ΠΎΠ΄ set создаСт эквивалСнт столбца SET с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ списком допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

smallIncrements()

ΠœΠ΅Ρ‚ΠΎΠ΄ smallIncrements создаСт эквивалСнт Π°Π²Ρ‚ΠΎΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ столбца UNSIGNED SMALLINT Π² качСствС ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°:

smallInteger()

ΠœΠ΅Ρ‚ΠΎΠ΄ smallInteger создаСт эквивалСнт столбца SMALLINT :

softDeletesTz()

softDeletes()

string()

ΠœΠ΅Ρ‚ΠΎΠ΄ string создаСт эквивалСнт столбца VARCHAR ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹:

ΠœΠ΅Ρ‚ΠΎΠ΄ text создаСт эквивалСнт столбца TEXT :

timeTz()

ΠœΠ΅Ρ‚ΠΎΠ΄ timeTz создаСт эквивалСнт столбца TIME (с часовым поясом) с Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (ΠΎΠ±Ρ‰Π΅Π΅ количСство Ρ†ΠΈΡ„Ρ€):

ΠœΠ΅Ρ‚ΠΎΠ΄ time создаСт эквивалСнт столбца TIME с Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (ΠΎΠ±Ρ‰Π΅Π΅ количСство Ρ†ΠΈΡ„Ρ€):

timestampTz()

ΠœΠ΅Ρ‚ΠΎΠ΄ timestampTz создаСт эквивалСнт столбца TIMESTAMP (с часовым поясом) с Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (ΠΎΠ±Ρ‰Π΅Π΅ количСство Ρ†ΠΈΡ„Ρ€):

timestamp()

ΠœΠ΅Ρ‚ΠΎΠ΄ timestamp создаСт эквивалСнт столбца TIMESTAMP с Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (ΠΎΠ±Ρ‰Π΅Π΅ количСство Ρ†ΠΈΡ„Ρ€):

timestampsTz()

timestamps()

ΠœΠ΅Ρ‚ΠΎΠ΄ timestamps method creates created_at and updated_at TIMESTAMP с Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (ΠΎΠ±Ρ‰Π΅Π΅ количСство Ρ†ΠΈΡ„Ρ€):

tinyIncrements()

ΠœΠ΅Ρ‚ΠΎΠ΄ tinyIncrements создаСт эквивалСнт Π°Π²Ρ‚ΠΎΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ столбца UNSIGNED TINYINT Π² качСствС ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°:

tinyInteger()

ΠœΠ΅Ρ‚ΠΎΠ΄ tinyInteger создаСт эквивалСнт столбца TINYINT :

unsignedBigInteger()

ΠœΠ΅Ρ‚ΠΎΠ΄ unsignedBigInteger создаСт эквивалСнт столбца UNSIGNED BIGINT :

unsignedDecimal()

ΠœΠ΅Ρ‚ΠΎΠ΄ unsignedDecimal создаСт эквивалСнт столбца UNSIGNED DECIMAL с Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (ΠΎΠ±Ρ‰Π΅Π΅ количСство Ρ†ΠΈΡ„Ρ€) ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠΌ (дСсятичныС Ρ†ΠΈΡ„Ρ€Ρ‹):

unsignedInteger()

ΠœΠ΅Ρ‚ΠΎΠ΄ unsignedInteger создаСт эквивалСнт столбца UNSIGNED INTEGER :

unsignedMediumInteger()

ΠœΠ΅Ρ‚ΠΎΠ΄ unsignedMediumInteger создаСт эквивалСнт столбца UNSIGNED MEDIUMINT :

unsignedSmallInteger()

ΠœΠ΅Ρ‚ΠΎΠ΄ unsignedSmallInteger создаСт эквивалСнт столбца UNSIGNED SMALLINT :

unsignedTinyInteger()

ΠœΠ΅Ρ‚ΠΎΠ΄ unsignedTinyInteger создаСт эквивалСнт столбца UNSIGNED TINYINT :

uuidMorphs()

ΠœΠ΅Ρ‚ΠΎΠ΄ uuidMorphs – это ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ добавляСт эквивалСнт столбца CHAR(36) ( _id ) ΠΈ эквивалСнт столбца VARCHAR ( _type ).

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ столбцов, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Eloquent, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ UUID. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄ΡƒΡ‚ созданы столбцы taggable_id ΠΈ taggable_type :

ΠœΠ΅Ρ‚ΠΎΠ΄ uuid создаСт эквивалСнт столбца UUID :

ΠœΠ΅Ρ‚ΠΎΠ΄ year создаСт эквивалСнт столбца YEAR :

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ столбца

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Ρ‚ΠΈΠΏΠ°ΠΌ столбцов, пСрСчислСнным Π²Ρ‹ΡˆΠ΅, Π΅ΡΡ‚ΡŒ нСсколько Β«ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²Β» столбцов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ столбца Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ столбСц Β«Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULLΒ», Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ nullable :

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ прСдставлСны всС доступныС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ столбцов. Π’ этот список Π½Π΅ входят ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ индСксов:

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
->after(‘column’)ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ столбСц «послС» Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ столбца (MySQL).
->autoIncrement()Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ столбцы INTEGER ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½Ρ‹Π΅ (ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡).
->charset(‘utf8mb4’)Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ символов для столбца (MySQL).
->collation(‘utf8mb4_unicode_ci’)Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ сравнСния для столбца (MySQL/PostgreSQL/SQL Server).
->comment(‘my comment’)Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ столбцу (MySQL/PostgreSQL).
->default($value)Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΒ» для столбца.
->first()ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ столбСц Β«ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΒ» Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ (MySQL).
->from($integer)Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ поля (MySQL / PostgreSQL).
->nullable($value = true)ΠŸΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) значСния NULL для вставки Π² столбСц.
->storedAs($expression)Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ сохранСнный Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ столбСц (MySQL).
->unsigned()Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ столбцы INTEGER ΠΊΠ°ΠΊ UNSIGNED (MySQL).
->useCurrent()Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ столбцы TIMESTAMP для использования CURRENT_TIMESTAMP Π² качСствС значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.
->useCurrentOnUpdate()Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ столбцы TIMESTAMP для использования CURRENT_TIMESTAMP ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ записи.
->virtualAs($expression)Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ столбСц (MySQL).
->generatedAs($expression)Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ столбСц ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (PostgreSQL).
->always()ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π°Π΄ Π²Π²ΠΎΠ΄ΠΎΠΌ для столбца ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² (PostgreSQL).

ВыраТСния для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ зависит ΠΎΡ‚ вашСго Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, вСрсии Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚ΠΈΠΏΠ° поля. Π‘ΠΌ. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊ вашСй Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ столбцов

ΠœΠ΅Ρ‚ΠΎΠ΄ after добавляСт Π½Π°Π±ΠΎΡ€ столбцов послС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ столбца Π² схСмС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… MySQL:

ИзмСнСниС столбцов

НСобходимыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

ΠŸΠ΅Ρ€Π΅Π΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ столбца Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ doctrine/dbal с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Composer. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Doctrine DBAL ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния столбца ΠΈ для создания запросов SQL, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для внСсСния Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² столбСц:

ОбновлСниС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² столбца

ΠœΠ΅Ρ‚ΠΎΠ΄ change позволяСт Π²Π°ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… столбцов. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ string столбца. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ change Π² дСйствии, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ столбца name Π΄ΠΎ 50. Для этого ΠΌΡ‹ просто опрСдСляСм Π½ΠΎΠ²ΠΎΠ΅ состояниС столбца ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ change :

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ столбСц, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ допускал Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL:

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ столбцов

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ столбСц, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ renameColumn построитСля схСмы Blueprint. ΠŸΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ столбца ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ установили Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ doctrine/dbal Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Composer:

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ enum столбца Π² настоящСС врСмя Π½Π΅ поддСрТиваСтся.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ столбцов

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ столбСц, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ dropColumn построитСля схСмы Blueprint. Если вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… SQLite, Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ doctrine/dbal Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Composer, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ dropColumn :

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ нСсколько столбцов ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² массив ΠΈΠΌΠ΅Π½ столбцов ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ dropColumn :

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… столбцов Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ использовании Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… SQLite Π½Π΅ поддСрТиваСтся.

ДоступныС псСвдонимы ΠΊΠΎΠΌΠ°Π½Π΄

Laravel содСрТит нСсколько ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², связанных с ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±Ρ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² столбцов. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² описан Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅:

Π˜Π½Π΄Π΅ΠΊΡΡ‹

БозданиС индСксов

ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒ схСм Laravel ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько Ρ‚ΠΈΠΏΠΎΠ² индСксов. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создаСтся Π½ΠΎΠ²Ρ‹ΠΉ столбСц email ΠΈ указываСтся, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ значСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ индСкс, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ unique с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ столбца:

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ индСкс послС опрСдСлСния столбца. Для этого Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ unique построитСля схСмы Blueprint. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ имя столбца, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ индСкс:

Π’Ρ‹ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ массив столбцов ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ индСкса для создания составного индСкса:

ΠŸΡ€ΠΈ создании индСкса Laravel автоматичСски сгСнСрируСт имя индСкса Π½Π° основС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΈΠΌΠ΅Π½ столбцов ΠΈ Ρ‚ΠΈΠΏΠ° индСкса, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя индСкса ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ:

ДоступныС Ρ‚ΠΈΠΏΡ‹ индСксов

ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒ схСм Laravel содСрТит ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для создания ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° индСкса, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Laravel. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ индСкса ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ для указания ΠΈΠΌΠ΅Π½ΠΈ индСкса. Если Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‚ΠΎ имя Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ столбцов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для индСкса, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΈΠΏΠ° индСкса. ВсС доступныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ индСкса описаны Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅:

КомандаОписаниС
$table->primary(‘id’);Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡.
$table->primary([‘id’, ‘parent_id’]);Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ составной ΠΊΠ»ΡŽΡ‡.
$table->unique(’email’);Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ индСкс.
$table->index(‘state’);ДобавляСт простой индСкс.
$table->spatialIndex(‘location’);ДобавляСт пространствСнный индСкс (ΠΊΡ€ΠΎΠΌΠ΅ SQLite).

Π”Π»ΠΈΠ½Π° индСкса ΠΈ MySQL / MariaDB

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ innodb_large_prefix для своСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ вашСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для получСния инструкций ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эту ΠΎΠΏΡ†ΠΈΡŽ.

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ индСксов

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ индСкс, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ renameIndex построитСля схСмы Blueprint. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ имя индСкса Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ имя Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°:

УдалСниС индСксов

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ индСкс, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя индСкса. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Laravel автоматичСски Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ имя индСкса Π½Π° основС ΠΈΠΌΠ΅Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΈΠΌΠ΅Π½ΠΈ индСксированного столбца ΠΈ Ρ‚ΠΈΠΏΠ° индСкса. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΡ‚Π΅ массив столбцов Π² ΠΌΠ΅Ρ‚ΠΎΠ΄, ΡƒΠ΄Π°Π»ΡΡŽΡ‰ΠΈΠΉ индСксы, Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ имя индСкса Π±ΡƒΠ΄Π΅Ρ‚ сгСнСрировано Π½Π° основС ΠΈΠΌΠ΅Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, столбцов ΠΈ Ρ‚ΠΈΠΏΠ° индСкса:

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ внСшнСго ΠΊΠ»ΡŽΡ‡Π°

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ этот синтаксис довольно ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ, Laravel ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅, Π±ΠΎΠ»Π΅Π΅ сТатыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ соглашСния, для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ продуктивности Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹ΡˆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ дСйствиС для свойств ограничСния Β«ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈΒ» ΠΈ Β«ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈΒ»:

Π›ΡŽΠ±Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ столбца Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ constrained :

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ внСшнСго ΠΊΠ»ΡŽΡ‡Π°

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ограничСния внСшнСго ΠΊΠ»ΡŽΡ‡Π° Π² своих миграциях, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

SQLite ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ограничСния внСшнСго ΠΊΠ»ΡŽΡ‡Π°. ΠŸΡ€ΠΈ использовании SQLite ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ внСшнСго ΠΊΠ»ΡŽΡ‡Π° Π² вашСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡ… Π² Π²Π°ΡˆΠΈΡ… миграциях. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, SQLite ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ внСшниС ΠΊΠ»ΡŽΡ‡ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ создании, Π° Π½Π΅ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ†.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *