2017-01-02 88 views
2

我试图使用composer从Symfony 3.1.8升级到3.2.1。在缓存清楚,我收到一个错误,说明Symfony 3.2.1删除yml文件中的下划线值

例外驾驶员发生:SQLSTATE [HY000] [1045]拒绝访问 用户“########” @“Ip地址”(使用密码:YES)

但是我的数据库用户名应该是####### _#,注意倒数第二个字符位置的下划线。查看parameter.yml文件,我发现我的database_user已被更改为从用户名中删除_(下划线被剥离)。然后我加回了我的下划线,删除了dev的缓存,然后再次尝试应用程序。我收到了和以前一样的错误。

既然作曲家也同时更新了教义和FOSuser包,我恢复了更新并通过恢复我的composer.lock文件返回到我之前的配置。然后,我在3.1.8版本中再次运行我的Symfony应用程序,它运行良好。

为了进一步隔离问题,我使用了composer并仅升级了3.1.8到3.2.1中的symfony。通过上面的错误消息,升级在缓存中产生了错误,并且在我的parameters.yml文件中,我的database_user再次从用户名中删除了下划线。我重新插入下划线,但是我继续得到错误信息:

例外驾驶员发生:SQLSTATE [HY000] [1045]拒绝访问 用户“########” @“Ip地址”(使用密码:YES)

如果我添加了一封信给我database_user的末尾,以便它是“####### _#一个”错误消息显示_

驱动程序发生异常:SQLSTATE [HY000] [1045]拒绝访问 用户'####### _#a'@'IpAd礼服(使用密码:YES)

如果我再删除错误信息恢复到没有下划线

在驾驶时发生异常:SQLSTATE [HY000] [1045]拒绝访问 为用户“########” @“Ip地址”(使用密码:YES)

这使我相信,3.1.8和3.2.1条之间的Symfony的一些变化从database_user强调在parameters.yml文件中。不幸的是,我不够熟练地弄清楚代码可能在哪里。

回答

3

github的帮助和一些阅读中,我发现这与在Symfony 3.1(Blog Post)中如何处理数值的变化有关。他们现在自动从yml文件中的所有数字值中去除下划线字符。

但是在我的情况下,我的用户名(由我的网站托管公司提供)是倒数第二个字符的所有数字,应该被解析为一个字符串。这现在被Symfony(符合YAML规范)解释为一个数字,并且下划线被剥离。

为了解决这个问题,我简单地在我的用户名里加了引号,并且Symfony开始正确处理值,并且能够运行我的应用程序。

+0

你应该接受你自己的答案。 :) – COil

+0

谢谢你! – MEmerson