2016-08-15 21 views
0

私はSyliusを初めて使い、MAMP Proでサイトを初めて設定しています。私はComposer経由でSyliusをインストールしましたが、インストール時に提供したデータベースの資格情報が正しくないことに気付きました。この後、私は、ドキュメントごとにアプリ/設定/ parameters.ymlに行き、次の資格情報更新日:何が起こっているSyliusデータベースの資格情報が更新されない

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

を、私は、サイトにアクセスしようとするたびに、それは500エラーをスローします。私のログをチェックすると、私はそれにアクセスしようとするたびに、私はアクセスはDBに拒否されているというエラーが出ます:

[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」の代わりに「secret」、「localhost」の代わりにホスト「127.0.0.1」に気づく)。parameters.ymlを正しい資格情報で更新しても、Sylius wonセットアップ中に使用した元の資格情報で接続しようとするのをやめてください。これには別のファイルがありますか? atはドキュメントに記載されていませんか?古い資格情報をキャッシュしていて、何らかのクリアリングが必要なのでしょうか?私はここで何が起こっているのか分からない。

EDIT

私も効果なしに、適切な資格情報を持つアプリ/設定/ parameters.yml.distを更新しようとしました。

EDIT 2

私は私の古いデータベースの名前のプロジェクトの全体の検索を行ってきたし、新しいデータベース名に、各インスタンスを更新しました。古いDB名を参照するファイルはありません。そして、私が試してみて、実行します。

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

をし、それがエラーをスローします:

[Doctrine\DBAL\Driver\PDOException]            

SQLSTATE [08006] [7] FATALを:データベースは "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'のみが含まれています。これは私が開発環境にいるためです。私はこの接尾辞を削除するために見つけた簡単な方法がないように見えるので、私はちょうどそれでロールバックするつもりです。これを取り除く方法についてはまだ答えが欲しいですが、今は自分の質問に答えました。