, (*1)
ΠΠ°Π½Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ
ΠΡΠΈΡΠΈΠ½Π° - ΠΌΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΠΈΡΡΠΈΠΊΡ Π² ΡΠ²ΠΎΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
.
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½ ΡΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π·Π°Π½ΡΡΡΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ - ΡΠΎΡΠΊΠ½ΠΈΡΠ΅ Π΅Π³ΠΎ ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Issue Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΡΡΠΎΠ±Ρ ΠΌΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ»ΠΈ Π·Π΄Π΅ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠΎΡΠΊ., (*2)
Π€ΠΎΡΠΊΠΈ:
- https://github.com/informunity/bitrix-migrations, (*3)
Bitrix-migrations
ΠΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΠ Π΄Π»Ρ ΠΠΈΡΡΠΈΠΊΡΠ° ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ, (*4)
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
1) composer require arrilot/bitrix-migrations
, (*5)
2) cp vendor/arrilot/bitrix-migrations/migrator migrator
- ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π² ΡΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ., (*6)
3) Π·Π°Ρ
ΠΎΠ΄ΠΈΠΌ Π²Π½ΡΡΡΡ ΠΈ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΡ ΡΡΠΎ Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ $_SERVER['DOCUMENT_ROOT']. ΠΠ΅Π½ΡΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ, (*7)
4) php migrator install
, (*8)
ΠΠ°Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΠ·Π΄Π°ΡΡ Π² ΠΠ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ
ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ., (*9)
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:, (*10)
1) Π’Π°Π±Π»ΠΈΡΠ° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ migrations., (*11)
2) composer.json
ΠΈ migrator
Π»Π΅ΠΆΠ°Ρ Π² ΠΊΠΎΡΠ½Π΅ ΡΠ°ΠΉΡΠ°., (*12)
3) Π€Π°ΠΉΠ»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ Π±ΡΠ΄ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ./migrations
ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΡΠ°ΠΏΠ΅ 2 ΡΠ°ΠΉΠ»Π°., (*13)
ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π² ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ migrator
., (*14)
- ΠΡΠ°ΠΉΠ½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ
migrator
ΠΈ ./migrations
Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΠΏΠΎ http ΡΠ΅ΡΠ΅Π· Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ. *
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
Π Π°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ
Π Π°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΈ ΠΊΡΠ°ΡΠΊΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:, (*15)
1) Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°ΠΉΠ» (ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Ρ) ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ php migrator make Π½Π°Π·Π²Π°Π½ΠΈΠ΅_ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ
, (*16)
Π€Π°ΠΉΠ» ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ ΠΊΠ»Π°ΡΡ Ρ Π΄Π²ΡΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ up()
ΠΈ down()
, (*17)
2) Π Π΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ up()
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΠ. ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ down()
ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΎΡΠΊΠ°Ρ ΡΡΠΈΡ
ΠΈΠ·ΠΌΠ½Π΅Π½ΠΈΠΉ, (*18)
3) ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ - php migrator migrate
, (*19)
4) ΠΠ½ΠΎΡΠΈΠΌ ΡΠ°ΠΉΠ»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΈΡ
ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΡ
ΠΌΠ°ΡΠΈΠ½Π°Ρ
, (*20)
ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
Π‘ΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ - php migrator list
, (*21)
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ |
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
`php migrator install` |
Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ. ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·. |
`php migrator make Π½Π°Π·Π²Π°Π½ΠΈΠ΅_ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ` |
Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°ΠΉΠ» ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ
ΠΠΏΡΠΈΠΈ:
`-d foo/bar` - ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ
|
`php migrator migrate` |
ΠΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ Π²ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ. ΠΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΡΠ°Π½Π΅Π΅ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ. |
`php migrator rollback` |
ΠΡΠΊΠ°ΡΡΠ²Π°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ (ΠΌΠ΅ΡΠΎΠ΄ `down()`). ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ.
ΠΠΏΡΠΈΠΈ:
`--hard` - Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΆΠ΅ΡΡΠΊΠΈΠΉ ΠΎΡΠΊΠ°Ρ Π±Π΅Π· Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° `down()`
`--delete` - ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΉΠ» Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠ΅ΠΉ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΠ°ΡΠ°.
|
`php migrator templates` |
ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΎ Π²ΡΠ΅ΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ |
`php migrator status` |
ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅. |
`php migrator archive` |
ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ Π²ΡΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π² Π°ΡΡ
ΠΈΠ². ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ archive, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³Π΅, ΡΠΊΠ°Π·Π°Π² "dir_archive"
ΠΠΏΡΠΈΠΈ:
`-w 10` - Π½Π΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡ Π² Π°ΡΡ
ΠΈΠ² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ N ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ
|
Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΠ Π±ΠΈΡΡΠΈΠΊΡΠ° ΡΠ΅ΡΠ΅Π· Π΅Π³ΠΎ ΠΠΠ - Π·Π°Π½ΡΡΠΈΠ΅ ΠΊΡΠ°ΠΉΠ½Π΅ ΠΌΠ°Π»ΠΎΠΏΡΠΈΡΡΠ½ΠΎΠ΅, ΡΠΎ Π΄Π»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π΅ΡΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΡΠ»Π΅Π΄ΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠ°ΠΉΠ»Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π΅Π³ΠΎ ΡΠ°Π±Π»ΠΎΠ½: php migrator make Π½Π°Π·Π²Π°Π½ΠΈΠ΅_ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ -t add_iblock
Π³Π΄Π΅ add_block
- Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π°.
ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡ Ρ Π±ΠΎΠΉΠ»Π΅ΡΠΏΠ»Π΅ΠΉΡΠΎΠΌ ΠΈΠ· ΡΠ°Π±Π»ΠΎΠ½Π° ΠΈ ΠΎΡΡΠ°Π΅ΡΡΡ Π»ΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΡ Π΄Π΅ΡΠ°Π»ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΠ΄ ΠΈΠ½ΡΠΎΠ±Π»ΠΎΠΊΠ°)
Π‘Π²ΠΎΠΈ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Π² ΡΠ°ΠΉΠ»Π΅ migrator
ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ TemplateCollection::registerTemplate()
, (*22)
ΠΠΌΠ΅ΡΡΠΈΠ΅ΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ:, (*23)
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ |
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
ΠΠ»ΠΈΠ°ΡΡ |
`default` |
Π§ΠΈΡΡΡΠΉ ΡΠ°Π±Π»ΠΎΠ½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ |
|
`add_iblock_type` |
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ΠΈΠ½ΡΠΎΠ±Π»ΠΎΠΊΠ° |
|
`add_iblock` |
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΠ±Π»ΠΎΠΊΠ° |
|
`add_iblock_element_property` |
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² ΠΈΠ½ΡΠΎΠ±Π»ΠΎΠΊ |
`add_iblock_prop`, `add_iblock_element_prop`, `add_element_prop`, `add_element_property` |
`add_uf` |
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ UF ΡΠ²ΠΎΠΉΡΡΠ²Π° |
|
`query` |
ΠΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π² ΠΠ ΡΠ΅ΡΠ΅Π· ΠΠΠ d7 |
|
`add_table` |
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΠΠΠ d7 |
`create_table` |
`delete_table` |
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΠΠΠ d7 |
`drop_table` |
6) php migrator status
- ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅., (*24)
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΠΊΠΈΠ»Π»Π΅Ρ-ΡΠΈΡΠ° - ΡΠ΅ΠΆΠΈΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ.
ΠΠ»Ρ Π΅Π³ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π² init.php
, (*25)
Arrilot\BitrixMigrations\Autocreate\Manager::init($_SERVER["DOCUMENT_ROOT"].'/migrations');
Π ΠΌΠ΅ΡΠΎΠ΄ Manager::init()
ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΏΡΡΡ Π΄ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³Ρ Π² ΡΠ°ΠΉΠ»Π΅ migrator
., (*26)
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠ΄Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅, (*27)
1) Π‘ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π±ΠΈΡΡΠΈΠΊΡΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ, (*28)
2) Π‘ΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠ°ΠΉΠ» ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΈ php migrator make
, (*29)
3) ΠΠΈΠ³ΡΠ°ΡΠΈΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ, (*30)
4) ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½ΠΎΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΠΏΡΠ½ΠΊΡΠ°Ρ
, (*31)
ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΡΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠ»ΡΡΠ°Π΅Π².
ΠΠΈΡΠ΅Π³ΠΎ Π² ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΡ
ΠΏΡΠ°Π²ΠΈΡΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ., (*32)
Π‘ΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ
ΡΠΎΠ±ΡΡΠΈΠΉ:, (*33)
Π‘ΠΎΠ±ΡΡΠΈΠ΅ |
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ |
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΠ±Π»ΠΎΠΊΠ° |
|
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΡΡ
ΠΏΠΎΠ»Π΅ΠΉ ΠΈΠ½ΡΠΎΠ±Π»ΠΎΠΊΠ° |
ΠΠ·-Π·Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ ΡΠ°Π±ΠΎΡΡ Π°Π΄ΠΌΠΈΠ½ΠΊΠΈ Π±ΠΈΡΡΠΈΠΊΡΠ° ΡΡΠ° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π·Π°ΡΠ°ΡΡΡΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΠΎΠ³Π΄Π° Π½Π΅ Π½ΡΠΆΠ½ΠΎ, Π΄ΠΎΠΏΡΡΡΠΈΠΌ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊΠ°ΡΡΠΎΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² ΠΈΠ½ΡΠΎΠ±Π»ΠΎΠΊ. ΠΠΈΡΠ΅Π³ΠΎ ΡΠΌΠ΅ΡΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ, Π½ΠΎ Π½Π°Π΄ΠΎ ΡΠΌΠΈΡΠΈΡΡΡΡ. |
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΠ±Π»ΠΎΠΊΠ° |
|
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΡΡΠΎΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² ΠΈΠ½ΡΠΎΠ±Π»ΠΎΠΊ |
|
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΡΡΠΎΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈΠ½ΡΠΎΠ±Π»ΠΎΠΊΠ° |
ΠΠΈΠ³ΡΠ°ΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΡΠ²ΠΎΠΉΡΡΠ²Π° Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½ΡΠ½ |
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΡΡΠΎΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈΠ½ΡΠΎΠ±Π»ΠΎΠΊΠ° |
|
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ UF ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΡΠ΄Π°-Π»ΠΈΠ±ΠΎ (ΡΠ°Π·Π΄Π΅Π» ΠΠ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Ρ
Π°ΠΉΠ»ΠΎΠ°Π΄Π±Π»ΠΎΠΊ) |
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ ΠΠΈΡΡΠΈΠΊΡ Π½Π΅ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° - ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ |
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ UF ΡΠ²ΠΎΠΉΡΡΠ²Π° |
|
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ
Π°ΠΉΠ»ΠΎΠ°Π΄Π±Π»ΠΎΠΊΠ° |
|
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ
Π°ΠΉΠ»ΠΎΠ°Π΄Π±Π»ΠΎΠΊΠ° |
ΠΠΈΠ³ΡΠ°ΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Ρ
Π°ΠΉΠ»ΠΎΠ°Π΄Π±Π»ΠΎΠΊΠ° Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½ΡΠ½ |
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ
Π°ΠΉΠ»ΠΎΠ°Π΄Π±Π»ΠΎΠΊΠ° |
|
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΡΠΏΠΏΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ |
|
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π³ΡΡΠΏΠΏΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ |
|
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π³ΡΡΠΏΠΏΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ |
|
- ΠΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΎΠ±ΡΡΠΈΡ
OnBefore...
. ΠΡΠ»ΠΈ ΠΏΡΠΈ Π²Π°ΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ° (Π΄ΠΎΠΏΡΡΡΠΈΠΌ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π° ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΊ ΡΠ°ΠΉΡΡ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΈΠ½ΡΠΎΠ±Π»ΠΎΠΊΠ°)
ΠΈ Π±ΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ ΡΡΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½Π°, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΡΡΠ½ΡΡ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΡΠ°ΠΊΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ php migrator rollback --hard --delete
*
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ
ΠΠ»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠΊΠΈΠ½ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ - php throw new MigrationException('Π’ΡΡ ΡΠ΅ΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ');
ΠΠΈ ΡΠ°ΠΌΠ° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ, Π½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ Π½Π΅ Π±ΡΠ΄ΡΡ., (*34)
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½Π΅ ΠΠΈΡΡΠΈΠΊΡ
ΠΠ°ΠΊΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΠΠΈΡΡΠΈΠΊΡΠΎΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅Π³ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ migrator
:, (*35)
1) ΠΠ°ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΄ΡΠ° ΠΠΈΡΡΠΈΠΊΡΠ° Π½Π° ΡΠ΄ΡΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ., (*36)
2) Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ Π°Π½Π°Π»ΠΎΠ³ Arrilot\BitrixMigrations\Repositories\BitrixDatabaseRepository;
ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ., (*37)
3) ΠΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ, ΡΠ΄Π΅Π»Π°Π² ΡΠ²ΠΎΠΈ., (*38)