SAM (StandAlone Migrations)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΠΌΠΈ ΠΠ Π±Π΅Π· Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ MySQL 5.5+, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ PHP 5.5+. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ c MySQL, Π° Π·Π°ΡΠ΅ΠΌ Π½Π°
ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΈΠ· ΡΡΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ
ΡΡΡΡΠΊΡΡΡΡ ΠΠ ΠΈΠ» Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎ Π»ΡΠ±ΠΎΠΉ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π½Π΅Π΅ Π²Π΅ΡΡΠΈΠΈ., (*1)
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈΠ· ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΎΠ²:
1) Π‘ΠΊΠ°ΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈΠ»ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΡΠΉΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
2) ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ composer update ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
3) ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°ΠΉΠ»Π° config.inc.sample.php ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» config.inc.php, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ²ΠΎΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
4) ...profit, (*2)
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΡΠ΅Π· composer
1) ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ composer require hetzerok/sam - Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈ Π²ΡΠ΅ Π΅Π³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
2) Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ» vendor/hetzerok/sam/run.php Π² ΡΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΌΠ΅ΡΡΠΎ.
3) ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°ΠΉΠ»Π° vendor/hetzerok/sam/config/config.inc.sample.php ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» config.inc.php, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ²ΠΎΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΈΡ
Π²
ΡΠ΄ΠΎΠ±Π½ΡΡ Π΄Π»Ρ Π²Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ
4) ΠΠ½Π΅ΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ» run.php:, (*3)
9 ΡΡΡΠΎΠΊΠ°:
```php
require __DIR__.'/vendor/autoload.php';
```
ΠΏΡΠΎΠΏΠΈΡΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΠΏΡΡΡ Π΄ΠΎ Π°Π²ΡΠΎΠ»ΠΎΠ΄Π΅ΡΠ°.
17 ΡΡΡΠΎΠΊΠ°:
```php
$config = Config::getInstance('config/');
```
ΠΏΡΠΎΠΏΠΈΡΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΠΏΡΡΡ Π΄ΠΎ ΡΠ°ΠΉΠ»Π° `config.inc.php`.
ΠΠΎΠΌΠ°Π΄Ρ
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ CLI ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°ΠΉΠ» run.php ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΎΠ»Ρ. ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π°Π±ΠΎΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄.
+ migrations:initialize - ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ.
+ migrations:generate - ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ (ΠΊΡΠΎΠΌΠ΅ ΠΈΠ½ΠΈΡΠΈΠΈΠ»ΠΈΠ·ΠΈΡΡΡΡΠ΅ΠΉ)
+ migrations:migrate - ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ. ΠΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠΏΡΠΈΡ --last, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΊΠ»ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ
Π½Π°ΠΊΠ°ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ., (*4)
Π‘Ρ
Π΅ΠΌΠ° ΡΠ°Π±ΠΎΡΡ
ΠΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ migrations:initialize, Π²Π½ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π±Π΄ Π»ΡΠ±ΡΠΌ
ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π²Π°ΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. ΠΠΎΠ³Π΄Π° ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°ΠΏ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ migrations:generate.
ΠΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ
ΡΠ°Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ VCS ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π»ΡΠ±ΡΠΌ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. ΠΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ
ΡΡΡΡΠΊΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° migrations:migrate., (*5)
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Π² ΡΠ°ΠΉΠ»Π΅ config.inc.php
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π‘ ΠΠ
-
username - ΠΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΠ
-
password - ΠΠ°ΡΠΎΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΠ
-
dsn - DSN ΡΡΡΠΎΠΊΠ° Π΄Π»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΠΠ c ΠΏΠΎΠΌΠΎΡΡΡ PDO
ΠΠ±ΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
-
import_data - (0|1) - Π€Π»Π°Π³, Π΅ΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ
-
table_prefix - ΠΡΠ΅ΡΠΈΠΊΡ ΡΠ°Π±Π»ΠΈΡ. Π’ΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ Π±ΡΠ΄ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ.
-
conside_foreign_keys - (0|1) - Π€Π»Π°Π³, ΡΡΠΈΡΡΠ²Π°ΡΡ Π»ΠΈ Π² ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΡ
Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠ»ΡΡΠΈ.
-
conside_indexes - (0|1) - Π€Π»Π°Π³, ΡΡΠΈΡΡΠ²Π°ΡΡ Π»ΠΈ Π² ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΡ
ΠΈΠ½Π΄Π΅ΠΊΡΡ.
ΠΡΡΠΈ ΠΈ ΡΠΎΡΠΌΠ°ΡΡ
-
migration_path - ΠΡΡΡ ΠΊ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΠΌΠΈ
-
schema_path - ΠΡΡΡ ΠΊ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΡΠΎ ΡΡ
Π΅ΠΌΠ°ΠΌΠΈ ( ΠΈ ΡΡ
Π΅ΠΌΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
)
-
data_path - ΠΡΡΡ ΠΊ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΠΌΠΈ Π΄Π°Π½Π½ΡΡ
-
version_format - (json) - ΡΠΎΡΠΌΠ°Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π²Π΅ΡΡΠΈΠΉ
-
schema_format - (json) - ΡΠΎΡΠΌΠ°Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΡ
Π΅ΠΌ
-
migration_format - (json) - ΡΠΎΡΠΌΠ°Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ
-
time_format - ΡΠΎΡΠΌΠ°Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ
-
local_version_file - ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ (Π±Π΅Π· ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ)
-
global_version_file - ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ (Π±Π΅Π· ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ)
-
log_path - ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ Ρ Π»ΠΎΠ³Π°ΠΌΠΈ
-
log_file - ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π»ΠΎΠ³ΠΎΠ²
Π‘ΠΏΠΈΡΠΊΠΈ
-
import_data_tables - ΡΠΏΠΈΡΠΎΠΊ ΡΠ°Π±Π»ΠΈΡ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ
Π±ΡΠ΄ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠΈΠΌΠΎ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ
(Π±Π΅Π· ΠΏΡΠ΅ΡΠΈΠΊΡΠ°) Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ
Π½ΡΠΆΠ½Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ.
.gitignore
ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ VCS GIT, ΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ Π²Π°Ρ .gitignore ΡΠ°ΠΉΠ» ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ» config.inc.php, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΡΡΠ°Π²ΡΡΠ΅ ΡΠ°ΠΉΠ» config.inc.sample.php Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°. Π’Π°ΠΊΠΆΠ΅
ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ local ΡΡ
Π΅ΠΌ ΠΈ Π²Π΅ΡΡΠΈΠΉ. Π ΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠΉΡΠ΅ Π»ΠΎΠ³ΠΈ, (*6)
Π€ΠΈΡΠΈ ΠΈ Π±Π°Π³ΠΈ
- ΠΡΠ΄ΡΡ ΡΡΡΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·Π°Π½ Π² ΠΊΠΎΠ½ΡΠΈΠ³Π΅, Π΅ΡΠ»ΠΈ Π½Π΅ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π²
ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ
table_prefix ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊΡ.
- ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ ΡΡΠΎΠ»Π±ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠΉΡΠ΅ ΠΊ Π½ΠΈΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ. ΠΡΠΈΠΌΠ΅Ρ: Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅
ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ
users Π² my_users. Π Π½Π°ΡΠ°Π»Π΅ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΊ ΡΠ°Π±Π»ΠΈΡΠ΅ (Π»ΡΠ±ΠΎΠΉ), Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
migrations:generate Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ Π²Π½ΠΎΠ²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ migrations:generate Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ
ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ users ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ my_users.
- ΠΠΈΠ³ΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°Ρ
Ρ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠ΅ΠΌ. ΠΡΠΎ ΡΡΠΊΠΎΡΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΌΠ΅ΡΡΠΎ,
ΡΠ°ΠΊ ΡΠ°ΠΊ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ ΠΏΠΎ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΌΡ ΠΊΠ»ΡΡΡ.
- ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ utf-8 ΠΈ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ Ρ ΠΠ Π·Π°Π΄Π°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
SET NAMES utf-8