From 0aa6aab0310af9c34e5752bf1e9352c465955c85 Mon Sep 17 00:00:00 2001 From: Babak Alizadeh Date: Thu, 6 Mar 2025 08:59:33 +0000 Subject: [PATCH] last update --- .../src/Command/UpdateSoftwareCommand.php | 49 +++++++++++++------ 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/hesabixCore/src/Command/UpdateSoftwareCommand.php b/hesabixCore/src/Command/UpdateSoftwareCommand.php index 3ed3ddd..6210791 100644 --- a/hesabixCore/src/Command/UpdateSoftwareCommand.php +++ b/hesabixCore/src/Command/UpdateSoftwareCommand.php @@ -325,9 +325,11 @@ class UpdateSoftwareCommand extends Command } } - $dbUrl = $this->params->get('database_url') ?? getenv('DATABASE_URL'); + // خواندن مستقیم از .env.local.php + $envConfig = file_exists($this->appDir . '/.env.local.php') ? require $this->appDir . '/.env.local.php' : []; + $dbUrl = $envConfig['DATABASE_URL'] ?? getenv('DATABASE_URL'); if (!$dbUrl) { - throw new \RuntimeException('Could not determine DATABASE_URL.'); + throw new \RuntimeException('Could not determine DATABASE_URL from .env.local.php or environment.'); } $urlParts = parse_url($dbUrl); @@ -340,8 +342,10 @@ class UpdateSoftwareCommand extends Command if (in_array($dbScheme, ['mysql', 'mariadb'])) { $command = [ 'mysqldump', - '-h', $dbHost, - '-u', $dbUser, + '-h', + $dbHost, + '-u', + $dbUser, '-p' . $dbPass, $dbName, '--result-file=' . $backupFile @@ -349,12 +353,16 @@ class UpdateSoftwareCommand extends Command } elseif ($dbScheme === 'pgsql') { $command = [ 'pg_dump', - '-h', $dbHost, - '-U', $dbUser, - '-d', $dbName, + '-h', + $dbHost, + '-U', + $dbUser, + '-d', + $dbName, '--no-owner', '--no-privileges', - '-f', $backupFile + '-f', + $backupFile ]; if ($dbPass) { putenv("PGPASSWORD=$dbPass"); @@ -373,6 +381,7 @@ class UpdateSoftwareCommand extends Command $this->logger->info("Database backup created at: $backupFile (scheme: $dbScheme)"); } + private function restoreArchive(string $backupFile): void { $this->runProcess(['rm', '-rf', $this->archiveDir], $this->rootDir, new \Symfony\Component\Console\Output\NullOutput()); @@ -428,9 +437,11 @@ class UpdateSoftwareCommand extends Command if ($dbBackup) { try { - $dbUrl = $this->params->get('database_url') ?? getenv('DATABASE_URL'); + // خواندن مستقیم از .env.local.php + $envConfig = file_exists($this->appDir . '/.env.local.php') ? require $this->appDir . '/.env.local.php' : []; + $dbUrl = $envConfig['DATABASE_URL'] ?? getenv('DATABASE_URL'); if (!$dbUrl) { - throw new \RuntimeException('Could not determine DATABASE_URL for rollback.'); + throw new \RuntimeException('Could not determine DATABASE_URL from .env.local.php or environment for rollback.'); } $urlParts = parse_url($dbUrl); @@ -443,8 +454,10 @@ class UpdateSoftwareCommand extends Command if (in_array($dbScheme, ['mysql', 'mariadb'])) { $command = [ 'mysql', - '-h', $dbHost, - '-u', $dbUser, + '-h', + $dbHost, + '-u', + $dbUser, '-p' . $dbPass, $dbName ]; @@ -453,10 +466,14 @@ class UpdateSoftwareCommand extends Command } elseif ($dbScheme === 'pgsql') { $command = [ 'psql', - '-h', $dbHost, - '-U', $dbUser, - '-d', $dbName, - '-f', $dbBackup + '-h', + $dbHost, + '-U', + $dbUser, + '-d', + $dbName, + '-f', + $dbBackup ]; if ($dbPass) { putenv("PGPASSWORD=$dbPass");