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 ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΠΎΠ΅ ΠΈΠΌΡ. ΠΡΠΎΡΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΠΈΠΌΡ ΡΠ°Π±Π»ΠΈΡΡ, ΠΈΠΌΠ΅Π½Π° Π²ΡΠ΅Ρ Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠΈΠΏ ΠΈΠ½Π΄Π΅ΠΊΡΠ°. ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²:
Command | Description |
---|---|
$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:
Command | Description |
---|---|
$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:
Command | Description |
---|---|
$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
Command | Description |
---|---|
$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 (
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ 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) (
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ 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 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠ»ΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ, Π° Π½Π΅ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΈΡ.