private/Set-MySqlTestEnvironment.ps1
|
function Set-MySqlTestEnvironment { <# .SYNOPSIS Configure environment variables for MySQL-related PHP tests and ensure the test database exists. #> [CmdletBinding()] param ( ) process { $Database = 'test' $DbHost = '127.0.0.1' $User = 'root' $Password = 'Password12!' $Port = 3306 if(-not(Test-Path mysql_init)) { & mysqld --initialize-insecure & mysqld --install & net start "MySQL" & mysql --port=$Port --user=root --password="" -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$( $Password )'; FLUSH PRIVILEGES;" 2> $null Set-Content -Path mysql_init -Value "initialized" -Encoding ASCII } $env:MYSQL_PWD = $Password $env:MYSQL_TEST_PASSWD = $env:MYSQL_PWD $env:MYSQL_TEST_USER = $User $env:MYSQL_TEST_HOST = $DbHost $env:MYSQL_TEST_PORT = "$Port" $env:MYSQL_TEST_DB = $Database $env:PDO_MYSQL_TEST_USER = $env:MYSQL_TEST_USER $env:PDO_MYSQL_TEST_PASS = $env:MYSQL_PWD $env:PDO_MYSQL_TEST_HOST = $env:MYSQL_TEST_HOST $env:PDO_MYSQL_TEST_PORT = $env:MYSQL_TEST_PORT $env:PDO_MYSQL_TEST_DSN = "mysql:host=$($env:PDO_MYSQL_TEST_HOST);port=$($env:PDO_MYSQL_TEST_PORT);dbname=$Database" $params = @( "--host=$($env:PDO_MYSQL_TEST_HOST)", "--port=$($env:MYSQL_TEST_PORT)", "--user=$($env:MYSQL_TEST_USER)", "--password=$($env:MYSQL_TEST_PASSWD)", "-e", "CREATE DATABASE IF NOT EXISTS $Database" ) if(-not(Test-Path mysql_db_created)) { & mysql @params 2>$null Set-Content -Path mysql_db_created -Value "db_created" -Encoding ASCII } } } |