![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /home/fdshops/public_html/vendor/spatie/db-dumper/src/Databases/ |
<?php namespace Spatie\DbDumper\Databases; use Spatie\DbDumper\DbDumper; use SQLite3; use Symfony\Component\Process\Process; class Sqlite extends DbDumper { public function dumpToFile(string $dumpFile): void { $process = $this->getProcess($dumpFile); $process->run(); $this->checkIfDumpWasSuccessFul($process, $dumpFile); } public function getDbTables(): array { $db = new SQLite3($this->dbName); $query = $db->query("SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%';"); $tables = []; while ($table = $query->fetchArray(SQLITE3_ASSOC)) { $tables[] = $table['name']; } $db->close(); return $tables; } public function getDumpCommand(string $dumpFile): string { $includeTables = rtrim(' ' . implode(' ', $this->includeTables)); if (empty($includeTables) && ! empty($this->excludeTables)) { $tables = $this->getDbTables(); $includeTables = rtrim(' ' . implode(' ', array_diff($tables, $this->excludeTables))); } $dumpInSqlite = "echo 'BEGIN IMMEDIATE;\n.dump{$includeTables}'"; if ($this->isWindows()) { $dumpInSqlite = "(echo BEGIN IMMEDIATE; & echo .dump{$includeTables})"; } $quote = $this->determineQuote(); $command = sprintf( "{$dumpInSqlite} | {$quote}%ssqlite3{$quote} --bail {$quote}%s{$quote}", $this->dumpBinaryPath, $this->dbName ); return $this->echoToFile($command, $dumpFile); } public function getProcess(string $dumpFile): Process { $command = $this->getDumpCommand($dumpFile); return Process::fromShellCommandline($command, null, null, null, $this->timeout); } }