From b2c7a3eb33178df271c232785cc0e12d9fa48253 Mon Sep 17 00:00:00 2001 From: fogelito Date: Thu, 27 Jul 2023 14:55:25 +0300 Subject: [PATCH] Transfer big data --- docker-compose.yml | 16 ++++++++++- src/Appwrite/Platform/Tasks/Backup.php | 40 +++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 66b9f00355..7efe98b0a4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -622,6 +622,20 @@ services: - _APP_MAINTENANCE_RETENTION_USAGE_HOURLY - _APP_MAINTENANCE_RETENTION_SCHEDULES + xtrabackup: + image: percona/percona-xtrabackup:latest + container_name: appwrite-xtrabackup + command: sleep infinity + #command: bash -c "sleep 86400" + environment: + - MYSQL_ROOT_PASSWORD=${_APP_DB_ROOT_PASS} + volumes: + - xtrabackup_data:/backups + - appwrite-mariadb:/var/lib/mysql:r + networks: + - appwrite + user: 'root:root' + appwrite-backup: entrypoint: db-backup <<: *x-logging @@ -753,7 +767,6 @@ services: - appwrite volumes: - appwrite-mariadb:/var/lib/mysql:rw - - ./mysql-init.sql:/mysql-init.sql:rw ports: - "3306:3306" environment: @@ -936,4 +949,5 @@ volumes: appwrite-config: appwrite-functions: appwrite-builds: + xtrabackup_data: # appwrite-chronograf: diff --git a/src/Appwrite/Platform/Tasks/Backup.php b/src/Appwrite/Platform/Tasks/Backup.php index 962a29c143..018a2bd4f2 100644 --- a/src/Appwrite/Platform/Tasks/Backup.php +++ b/src/Appwrite/Platform/Tasks/Backup.php @@ -72,6 +72,8 @@ class Backup extends Action self::stopMysqlContainer($this->containerName); + Console::exit(); + $stdout = ''; $stderr = ''; // Tar from inside the mysql directory for not using --strip-components @@ -184,7 +186,7 @@ class Backup extends Action } } - public static function stopMysqlContainer($name): void + public static function stopMysqlContainer1($name): void { $stdout = ''; $stderr = ''; @@ -216,4 +218,40 @@ class Backup extends Action Console::exit(); } } + + + + public static function stopMysqlContainer($name): void + { + + $stdout = ''; + $stderr = ''; + Console::execute('docker exec appwrite-mariadb echo "hello"', '', $stdout, $stderr); + var_dump($stderr); + var_dump($stdout); + + + $stdout = ''; + $stderr = ''; + Console::execute('docker exec appwrite-mariadb mysql -uroot -prootsecretpassword -e "LOCK INSTANCE FOR BACKUP;"', '', $stdout, $stderr); + var_dump($stderr); + var_dump($stdout); + + + $stdout = ''; + $stderr = ''; + Console::execute('docker exec appwrite-mariadb mysql -uroot -prootsecretpassword -e "FLUSH TABLES WITH READ LOCK;"', '', $stdout, $stderr); + var_dump($stderr); + var_dump($stdout); + + Console::loop(function () { + self::log('loop'); + }, 100); + + + Console::exit(); + + } + + }