scrutinizer ci: возможно ли изменить / настроить пользователя для MySQL? - PullRequest
0 голосов
/ 08 февраля 2019

С Laravel, я использую Travis и Scrutinizer CI.

Для travis, используя .yml, я могу заставить его использовать того же пользователя MySQL, которого я использую для теста (в моем случае user is "forge", пароль" forge "и db" test ").

С Scrutinizer я не могу получить то же самое поведение: он жалуется с

[Illuminate\Database\QueryException (1045)]                                  
  SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using pa  
  ssword: NO) (SQL: select * from information_schema.tables where table_schem  
  a = forge and table_name = migrations)    

Это мой файл .scrutinizer.yml

build:
    environment:
        php: '7.2'
        mysql: '5.7'
        node: '8.1'
        hosts:
            laravel.dev: '127.0.0.1'
        variables:
            APP_KEY: 'base64:OYl4Bk9ekouOUIRXyeTD0FVi+cJ9D+HMyDJBgSBSUuI='
            APP_ENV: 'testing'
            APP_URL: 'http://laravel.dev'
            API_HOST: 'laravel.dev'
            #DB_HOST: '127.0.0.1'
            #DB_TEST_DATABASE: 'test'
            #DB_TEST_USERNAME: 'root'
            #DB_TEST_PASSWORD: ''
            MAIL_DRIVER: 'log'
    cache:
        directories:
            #- node_modules
            - vendor/
            - ~/.composer/cache/
    dependencies:
        before:
            - mysql -uroot -e "CREATE DATABASE IF NOT EXISTS test"
            - mysql -uroot -e "GRANT ALL ON test.* TO 'forge'@'localhost' IDENTIFIED BY 'forge'";
    tests:
        before:
            - chmod -R 777 storage
            - chmod -R 777 bootstrap/cache
            - composer dump-autoload
            #- php artisan migrate --no-interaction -vvv
            #- php artisan db:seed --no-interaction -vvv
            - php artisan migrate:refresh --seed --no-interaction -vvv #This will clean, migrate, then seed the db
            - rm -rf node_modules
            - npm install
            #- npm run
            - npm run production
        override:
            -
                command: vendor/bin/phpunit --coverage-clover=clover-coverage
                coverage:
                    file: clover-coverage
                    format: clover

(обратите внимание, что я прокомментировал раздел DB_xx, потому что он не используется в Scrutinizer, и я добавил инструкции mysql).

И это раздел базы данных тестирования конфигурации в config/database.php:

'testing' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_TEST_DATABASE', 'test'),
            'username' => env('DB_TEST_USERNAME', 'forge'),
            'password' => env('DB_TEST_PASSWORD', 'forge'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null
        ],

Scrutinizer создает только «тестовую» базу данных, кажется, что «GRANT» выполняется, но в итоге завершается с ошибкой.

Это журнал: https://scrutinizer-ci.com/g/sineverba/domotic-panel/inspections/a459bd50-4785-4a79-8184-074362631df4/log

Итак, мой вопрос: как я могу заставить анализатора использовать другого пользователядля mysql вместо root без пароля?

...