2016-08-15 3 views
0

Я новичок в Sylius и впервые настраиваю сайт на MAMP Pro. Я установил Sylius через Composer, но понял, что учетные данные базы данных, которые я предоставил во время установки, были неправильными. После этого я пошел в приложение/Config/parameters.yml согласно документации, а также обновлены следующие полномочия:Учетные данные базы данных Sylius не обновляются

database_driver: pdo_mysql 
database_host: localhost 
database_port: null 
database_name: mydb 
database_user: root 
database_password: root 

То, что происходит каждый раз, когда я пытаюсь получить доступ к сайту, он выдает ошибку 500 , После проверки моего журнала, каждый раз, когда я пытаюсь получить доступ к нему, я получаю сообщение об ошибке о доступе отказано в БД:

[15-Aug-2016 13:49:34 America/New_York] PHP Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) in vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43 

Странная вещь журнал ошибок также показывает, что это:

vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php(41): Doctrine\DBAL\Driver\PDOConnection->__construct('mysql:host=127....', 'root', 'secret', Array) 

Это старые учетные данные (обратите внимание на пароль «секрет» вместо «root» и «127.0.0.1» хоста вместо «localhost». Похоже, что, несмотря на обновление моих parameters.yml с правильными учетными данными, Sylius выиграл Не пытайтесь подключиться к исходным учетным данным, которые я использовал во время установки. Есть ли другой файл, который можно сохранить в th не указано в документации? Может ли он кэшировать старые учетные данные и нуждается в некоторой очистке? Я не понимаю, что здесь происходит.

EDIT:

Я также попытался обновить приложение/Config/parameters.yml.dist с соответствующими учетными данными, никакого эффекта.

EDIT 2:

Я сделал весь поиск проекта по имени моей старой базы данных, и обновляются каждый экземпляр нового имени базы данных. Нет файлов, ссылающихся на старое имя базы данных. Тогда я пытаюсь запустить:

php app/console cache:clear --env=dev --no-debug 

и выбрасывает ошибку:

[Doctrine\DBAL\Driver\PDOException]            

SQLSTATE [08006] [7] НЕУСТРАНИМЫЕ: базу данных "old_database_name" не существует

несмотря old_database_name не ссылки в любом файле. Затем, если я выполняю поиск по old_database_name ПОСЛЕ запуска кеша, он перезаписывает новое имя базы данных в app/cache/de_/ap_DevProjectContainer.php со старым именем снова, каждый раз. Я даже не могу понять, откуда он получает старое имя базы данных, после того, как я перезаписал все его экземпляры. Что тут происходит??

ответ

1

Конфигурация Sylius по умолчанию использует другую базу данных для производства и разработки. В вашем случае это будет sylius из prod, а для среды dev _dev добавляется к имени базы данных. Это ожидаемое поведение, а не ошибка.

Вы можете найти конфигурацию в конце app/config/config_dev.yml. Если вы удалите следующие строки, обе среды используют одну и ту же базу данных.

doctrine: 
    dbal: 
     dbname: %sylius.database.name%_dev 

https://github.com/Sylius/Sylius/issues/2362

0

В этом случае old_database_name было таким же, как мое новое имя базы данных, только в нем содержался суффикс '_dev'. Теперь я понял, что это потому, что я в среде разработчиков. Кажется, нет никакого легкого способа, который я нашел, чтобы удалить этот суффикс, поэтому я просто собираюсь с ним кататься. Хотелось бы получить ответ о том, как удалить это, но на данный момент я ответил на свой вопрос.