PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.2.0
Independent Analytics – WordPress Analytics Plugin v2.2.0
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / illuminate / database / Schema / PostgresSchemaState.php
independent-analytics / vendor / illuminate / database / Schema Last commit date
Grammars 2 years ago Blueprint.php 2 years ago Builder.php 2 years ago ColumnDefinition.php 2 years ago ForeignIdColumnDefinition.php 2 years ago ForeignKeyDefinition.php 2 years ago MySqlBuilder.php 2 years ago MySqlSchemaState.php 2 years ago PostgresBuilder.php 2 years ago PostgresSchemaState.php 2 years ago SQLiteBuilder.php 2 years ago SchemaState.php 2 years ago SqlServerBuilder.php 2 years ago SqliteSchemaState.php 2 years ago
PostgresSchemaState.php
62 lines
1 <?php
2
3 namespace IAWP_SCOPED\Illuminate\Database\Schema;
4
5 use IAWP_SCOPED\Illuminate\Database\Connection;
6 use IAWP_SCOPED\Illuminate\Support\Str;
7 /** @internal */
8 class PostgresSchemaState extends SchemaState
9 {
10 /**
11 * Dump the database's schema into a file.
12 *
13 * @param \Illuminate\Database\Connection $connection
14 * @param string $path
15 * @return void
16 */
17 public function dump(Connection $connection, $path)
18 {
19 $excludedTables = \IAWP_SCOPED\collect($connection->getSchemaBuilder()->getAllTables())->map->tablename->reject(function ($table) {
20 return $table === $this->migrationTable;
21 })->map(function ($table) {
22 return '--exclude-table-data="*.' . $table . '"';
23 })->implode(' ');
24 $this->makeProcess($this->baseDumpCommand() . ' --file="${:LARAVEL_LOAD_PATH}" ' . $excludedTables)->mustRun($this->output, \array_merge($this->baseVariables($this->connection->getConfig()), ['LARAVEL_LOAD_PATH' => $path]));
25 }
26 /**
27 * Load the given schema file into the database.
28 *
29 * @param string $path
30 * @return void
31 */
32 public function load($path)
33 {
34 $command = 'pg_restore --no-owner --no-acl --clean --if-exists --host="${:LARAVEL_LOAD_HOST}" --port="${:LARAVEL_LOAD_PORT}" --username="${:LARAVEL_LOAD_USER}" --dbname="${:LARAVEL_LOAD_DATABASE}" "${:LARAVEL_LOAD_PATH}"';
35 if (Str::endsWith($path, '.sql')) {
36 $command = 'psql --file="${:LARAVEL_LOAD_PATH}" --host="${:LARAVEL_LOAD_HOST}" --port="${:LARAVEL_LOAD_PORT}" --username="${:LARAVEL_LOAD_USER}" --dbname="${:LARAVEL_LOAD_DATABASE}"';
37 }
38 $process = $this->makeProcess($command);
39 $process->mustRun(null, \array_merge($this->baseVariables($this->connection->getConfig()), ['LARAVEL_LOAD_PATH' => $path]));
40 }
41 /**
42 * Get the base dump command arguments for PostgreSQL as a string.
43 *
44 * @return string
45 */
46 protected function baseDumpCommand()
47 {
48 return 'pg_dump --no-owner --no-acl -Fc --host="${:LARAVEL_LOAD_HOST}" --port="${:LARAVEL_LOAD_PORT}" --username="${:LARAVEL_LOAD_USER}" --dbname="${:LARAVEL_LOAD_DATABASE}"';
49 }
50 /**
51 * Get the base variables for a dump / load command.
52 *
53 * @param array $config
54 * @return array
55 */
56 protected function baseVariables(array $config)
57 {
58 $config['host'] = $config['host'] ?? '';
59 return ['LARAVEL_LOAD_HOST' => \is_array($config['host']) ? $config['host'][0] : $config['host'], 'LARAVEL_LOAD_PORT' => $config['port'], 'LARAVEL_LOAD_USER' => $config['username'], 'PGPASSWORD' => $config['password'], 'LARAVEL_LOAD_DATABASE' => $config['database']];
60 }
61 }
62