bitrix-phinx
ΠΠ°ΠΊ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ
- Π‘ΡΠ°Π²ΠΈΠΌ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ΅ΡΠ΅Π· composer
composer require magnifico/bitrix-phinx:^0.1
- Π‘ΡΠ°Π²ΠΈΠΌ ΡΠΈΠΌΠ»ΠΈΠ½ΠΊ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ "magnifico.phinx" ΠΈΠ· Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ bitrix'Π° Π½Π° ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
cd /home/bitrix/www/bitrix/modules
ln -s ../../../vendor/magnifico/bitrix-phinx magnifico.phinx
- ΠΠ΅Π»Π°Π΅ΠΌ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Ρ "magnifico.console":
cd /home/bitrix/www/bitrix/modules
ln -s ../../../vendor/magnifico/bitrix-console magnifico.console
-
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΎΠ±Π° ΠΌΠΎΠ΄ΡΠ»Ρ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅ Π±ΠΈΡΡΠΈΠΊΡΠ°, (*1)
-
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ°ΠΉΠ» "manage.php":, (*2)
<?php
# ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ, Π³Π΄Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ DOCUMENT_ROOT
$_SERVER['DOCUMENT_ROOT'] = '/home/bitrix/www';
# ΠΠΊΠ»ΡΡΠ°Π΅ΠΌ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ magnifico.console
require_once $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/magnifico.console/manage.php';
- ΠΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ
ΠΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΡΠΈΠΏΠ° phinx.yml) - Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΈΠ· ΡΠ΄ΡΠ° Π±ΠΈΡΡΠΈΠΊΡΠ°., (*3)
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ phinx'Π°, Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠ΅ΡΠ²ΡΠΌ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΠΈΡΡΠΈΠΊΡΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ. ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΡΡΠ°Π»ΠΈΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ., (*4)
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π½Π°Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ magnifico.site, ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±ΡΠ΄ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:, (*5)
# Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ
php manage.php phinx:create magnifico.site MigrationName
# ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ
php manage.php phinx:migrate magnifico.site
# ΠΡΠΊΠ°Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ
php manage.php phinx:rollback magnifico.site
# ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΡ
php manage.php phinx:status magnifico.site
ΠΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π±ΡΠ΄ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ ΠΈ ΠΈΡΠΊΠ°ΡΡΡΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ "migrations", Π»Π΅ΠΆΠ°ΡΠ΅ΠΉ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:, (*6)
# ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ local
/home/bitrix/www/local/modules/magnifico.site/migrations
# Π’Π°ΠΊ ΡΠΎΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ
/home/bitrix/www/bitrix/modules/magnifico.site/migrations
Π’Π°ΠΊΠΆΠ΅, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ phinx'Π°, Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° Π½Π΅ ΠΎΠ΄Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°, Π° ΠΏΠΎ ΡΠ°Π±Π»ΠΈΡΠ΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ "magnifico_phinx_migrations_of_{module_name}", Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:, (*7)
magnifico_phinx_migrations_of_magnifico_site
magnifico_phinx_migrations_of_atlaslib_feedback
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
php manage.php phinx:migrate magnifico.site1 magnifico.site2 magnifico.site3, (*8)
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
php manage.php phinx:migrate, (*9)
ΠΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ php ΠΊΠ»Π°ΡΡΠ° Π² ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠ³Π΄Π° Π² ΡΠ°Π·Π½ΡΡ
ΠΌΠΎΠ΄ΡΠ»ΡΡ
Π΅ΡΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ. ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΠΆΠ΅Π½ΠΈΡ:
- php_bin - ΠΏΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ php, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ PHP_BINARY
- manager_file - ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ manage.php, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ realpath($_SERVER['argv'][0]), (*10)
ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ., (*11)
\Bitrix\Main\Config\Option::set('magnifico.phinx', 'php_bin', '/bin/php');
\Bitrix\Main\Config\Option::set('magnifico.phinx', 'manager_file', '/app/www/manager.php');