Просмотров: 26558
										Дата последнего изменения: 10.04.2024					
					
			
							
			
			
				
									
						Сложность урока:
						
							
								
									
										4 уровень - сложно, требуется сосредоточиться, внимание деталям и точному следованию инструкции.
									 
								 
							 
														
															
									5
								
														 
					 
				
				
				
							 
		 
	 	
	
		
- Создайте пользователя и базу PostgreSQL
root@cp:/var/www/html# sudo -u postgres createuser bitrix 
root@cp:/var/www/html# sudo -u postgres psql -c 'grant create on schema public to "bitrix"' 
GRANT 
root@cp:/var/www/html# sudo -u postgres createdb portaldb --owner bitrix --lc-ctype C.UTF-8 --template=template0 
root@cp:/var/www/html# sudo -u postgres psql -d portaldb -c 'CREATE EXTENSION IF NOT EXISTS pgcrypto' 
CREATE EXTENSION 
root@cp:/var/www/html# sudo -u postgres psql -d portaldb -c 'ALTER USER "bitrix" WITH PASSWORD '\''passwd'\'''  
ALTER ROLE 
- Остановите cron и веб-сервер, чтобы избежать модификации данных во время переноса.
root@cp:/var/www/html# systemctl stop cron 
root@cp:/var/www/html# systemctl stop apache2 
root@cp:/var/www/html# systemctl stop php-fpm 
root@cp:/var/www/html# systemctl stop nginx 
- Сделайте дамп базы данных MySQL
root@cp:/var/www/html# mysqldump --opt --skip-extended-insert --hex-blob -u root portaldb > /tmp/mysql_dump.sql 
- Сконвертируйте его в PostgreSQL
root@cp:/var/www/html# php -f bitrix/modules/perfmon/tools/mysql_to_pgsql.php -- --mysqldump=/tmp/mysql_dump.sql > /tmp/pgsql_dump.sql 
- Убедитесь, что всё получилось
root@cp:/var/www/html# less /tmp/pgsql_dump.sql 
- Добавьте дамп в PostgreSQL
root@cp:/var/www/html# sudo -u www-data psql -b -q --user bitrix -d portaldb -f /tmp/pgsql_dump.sql 
- Добавьте дополнительные функции в PostgreSQL
root@cp:/var/www/html# grep -v 'ALTER TABLE b_group' bitrix/modules/main/install/pgsql/install_add.sql | sudo -u www-data psql -b -q --user bitrix -d portaldb 
- Отредактируйте файл .settings.php
root@cp:/var/www/html# vi bitrix/.settings.php
'connections' =>
	array (
		'value' => 
		array (
			'default' =>
			array (
				'className' => '\\Bitrix\\Main\\DB\\PgsqlConnection',
				'host' => 'localhost',
				'database' => 'portaldb',
				'login' => 'bitrix',
				'password' => 'passwd',
				'options' => 2,
				'charset' => 'utf-8',
				'include_after_connected' => '',
			),
		), 
- Удалите модули без поддержки PostgreSQL
root@cp:/home/max/sites/php74cp1251.cp/html# for mysql in `ls bitrix/modules/*/install/mysql/install.sql bitrix/modules/*/install/db/mysql/install.sql`; 
do 
pgsql=`echo $mysql|sed 's#/mysql/#/pgsql/#'`; 
test -e $pgsql || sudo -u postgres psql -d portaldb -a -c "delete from b_module where id='`echo $pgsql|cut -d '/' -f 3`'"; 
done 
 
delete from b_module where id='abtest'
DELETE 0
delete from b_module where id='advertising'
DELETE 0
delete from b_module where id='b24connector'
DELETE 0
delete from b_module where id='biconnector'
DELETE 0
........ 
- Запустите сервисы
root@cp:/var/www/html# systemctl start cron
root@cp:/var/www/html# systemctl start apache2
root@cp:/var/www/html# systemctl start php-fpm
root@cp:/var/www/html# systemctl start nginx