last update
This commit is contained in:
parent
a1fb5da1f8
commit
0aa6aab031
|
@ -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) {
|
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);
|
$urlParts = parse_url($dbUrl);
|
||||||
|
@ -340,8 +342,10 @@ class UpdateSoftwareCommand extends Command
|
||||||
if (in_array($dbScheme, ['mysql', 'mariadb'])) {
|
if (in_array($dbScheme, ['mysql', 'mariadb'])) {
|
||||||
$command = [
|
$command = [
|
||||||
'mysqldump',
|
'mysqldump',
|
||||||
'-h', $dbHost,
|
'-h',
|
||||||
'-u', $dbUser,
|
$dbHost,
|
||||||
|
'-u',
|
||||||
|
$dbUser,
|
||||||
'-p' . $dbPass,
|
'-p' . $dbPass,
|
||||||
$dbName,
|
$dbName,
|
||||||
'--result-file=' . $backupFile
|
'--result-file=' . $backupFile
|
||||||
|
@ -349,12 +353,16 @@ class UpdateSoftwareCommand extends Command
|
||||||
} elseif ($dbScheme === 'pgsql') {
|
} elseif ($dbScheme === 'pgsql') {
|
||||||
$command = [
|
$command = [
|
||||||
'pg_dump',
|
'pg_dump',
|
||||||
'-h', $dbHost,
|
'-h',
|
||||||
'-U', $dbUser,
|
$dbHost,
|
||||||
'-d', $dbName,
|
'-U',
|
||||||
|
$dbUser,
|
||||||
|
'-d',
|
||||||
|
$dbName,
|
||||||
'--no-owner',
|
'--no-owner',
|
||||||
'--no-privileges',
|
'--no-privileges',
|
||||||
'-f', $backupFile
|
'-f',
|
||||||
|
$backupFile
|
||||||
];
|
];
|
||||||
if ($dbPass) {
|
if ($dbPass) {
|
||||||
putenv("PGPASSWORD=$dbPass");
|
putenv("PGPASSWORD=$dbPass");
|
||||||
|
@ -373,6 +381,7 @@ class UpdateSoftwareCommand extends Command
|
||||||
$this->logger->info("Database backup created at: $backupFile (scheme: $dbScheme)");
|
$this->logger->info("Database backup created at: $backupFile (scheme: $dbScheme)");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private function restoreArchive(string $backupFile): void
|
private function restoreArchive(string $backupFile): void
|
||||||
{
|
{
|
||||||
$this->runProcess(['rm', '-rf', $this->archiveDir], $this->rootDir, new \Symfony\Component\Console\Output\NullOutput());
|
$this->runProcess(['rm', '-rf', $this->archiveDir], $this->rootDir, new \Symfony\Component\Console\Output\NullOutput());
|
||||||
|
@ -428,9 +437,11 @@ class UpdateSoftwareCommand extends Command
|
||||||
|
|
||||||
if ($dbBackup) {
|
if ($dbBackup) {
|
||||||
try {
|
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) {
|
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);
|
$urlParts = parse_url($dbUrl);
|
||||||
|
@ -443,8 +454,10 @@ class UpdateSoftwareCommand extends Command
|
||||||
if (in_array($dbScheme, ['mysql', 'mariadb'])) {
|
if (in_array($dbScheme, ['mysql', 'mariadb'])) {
|
||||||
$command = [
|
$command = [
|
||||||
'mysql',
|
'mysql',
|
||||||
'-h', $dbHost,
|
'-h',
|
||||||
'-u', $dbUser,
|
$dbHost,
|
||||||
|
'-u',
|
||||||
|
$dbUser,
|
||||||
'-p' . $dbPass,
|
'-p' . $dbPass,
|
||||||
$dbName
|
$dbName
|
||||||
];
|
];
|
||||||
|
@ -453,10 +466,14 @@ class UpdateSoftwareCommand extends Command
|
||||||
} elseif ($dbScheme === 'pgsql') {
|
} elseif ($dbScheme === 'pgsql') {
|
||||||
$command = [
|
$command = [
|
||||||
'psql',
|
'psql',
|
||||||
'-h', $dbHost,
|
'-h',
|
||||||
'-U', $dbUser,
|
$dbHost,
|
||||||
'-d', $dbName,
|
'-U',
|
||||||
'-f', $dbBackup
|
$dbUser,
|
||||||
|
'-d',
|
||||||
|
$dbName,
|
||||||
|
'-f',
|
||||||
|
$dbBackup
|
||||||
];
|
];
|
||||||
if ($dbPass) {
|
if ($dbPass) {
|
||||||
putenv("PGPASSWORD=$dbPass");
|
putenv("PGPASSWORD=$dbPass");
|
||||||
|
|
Loading…
Reference in a new issue