Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Database/Schema/MariaDbSchemaState.php
Строк: 79
<?php

namespace IlluminateDatabaseSchema;

use 
SymfonyComponentProcessExceptionProcessFailedException;

class 
MariaDbSchemaState extends MySqlSchemaState
{
    
/**
     * Load the given schema file into the database.
     *
     * @param  string  $path
     * @return void
     */
    
public function load($path)
    {
        
$versionInfo $this->detectClientVersion();

        
$command 'mariadb '.$this->connectionString($versionInfo).' --database="${:LARAVEL_LOAD_DATABASE}" < "${:LARAVEL_LOAD_PATH}"';

        
$process $this->makeProcess($command)->setTimeout(null);

        
$process->mustRun(nullarray_merge($this->baseVariables($this->connection->getConfig()), [
            
'LARAVEL_LOAD_PATH' => $path,
        ]));
    }

    
/**
     * Get the base dump command arguments for MariaDB as a string.
     *
     * @return string
     */
    
protected function baseDumpCommand()
    {
        
$versionInfo $this->detectClientVersion();

        
$command 'mariadb-dump '.$this->connectionString($versionInfo).' --no-tablespaces --skip-add-locks --skip-comments --skip-set-charset --tz-utc';

        return 
$command.' "${:LARAVEL_LOAD_DATABASE}"';
    }

    
/**
     * Detect the MariaDB client version.
     *
     * @return array{version: string, isMariaDb: bool}
     */
    
protected function detectClientVersion(): array
    {
        
// Minimum version of MariaDB that supports the mariadb command...
        
$version '10.5.2';

        try {
            
$versionOutput $this->makeProcess('mariadb --version')->mustRun()->getOutput();

            if (
preg_match('/(d+.d+.d+)/'$versionOutput$matches)) {
                
$version $matches[1];
            }
        } catch (
ProcessFailedException) {
        }

        return [
            
'isMariaDb' => true,
            
'version' => $version,
        ];
    }
}
Онлайн: 1
Реклама