最近在开发机器上从2.3.1升级到2.8.7。 一切都很顺利,直到我需要创建一个新表。 通过doctrine:mapping:convert
管理生成yml当我通过doctrine创建getter和setter时:generate:entities我得到了:
[Symfony\Component\Debug\Exception\ContextErrorException]
Warning: chmod(): Operation not permitted
没有别的。哪个不是很有帮助。它是一个chmod我需要在某处添加@吗? 我正在执行命令为www-data,日志文件夹文件也是www-data,所以我不相信这是调试文件权限问题。
此外,它是否与需要升级的东西有关。这是我的作曲家档案:
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.8.*",
"doctrine/orm": "2.5.*",
"doctrine/doctrine-bundle": "1.6.*",
"twig/extensions": "1.3.*",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"symfony/assetic-bundle": "~2.8",
"sensio/distribution-bundle": "~5.0",
"sensio/framework-extra-bundle": "^3.0.2",
"incenteev/composer-parameter-handler": "~2.0",
"snc/redis-bundle": "dev-master",
"predis/predis": "1.0.*",
"symfony/class-loader": "v2.8.*"
},
"require-dev": {
"sensio/generator-bundle": "~3.0",
"symfony/phpunit-bridge": "~2.7"
},
我只是希望调试对于它当时正在做的事情稍微有点帮助。或者错误发生在哪个文件/行。
答案 0 :(得分:0)
同时检查cache
文件夹所有权。如果是同一个用户,则不应该担心。还是要仔细检查。
此外,如果这不起作用,请暂时停用safe_mode
并再次检查。
答案 1 :(得分:0)
这更像是一种解决方法而不是修复。
基本上在版本更改中,他们添加了想要修改存储库文件的代码。由于这些是自动生成的,因此大部分时间都可以。如果您已经为其中任何一个添加了代码,特别是如果您要将代码修改为www-data以外的用户,那么它就会破坏。
所以现在,当我来做一个databsse结构更新的getter和setter的一部分时,我运行它:
sudo find ./src/MyBunddle/SiteBundle/Entity -name '*.php' ! -name '*Repository.php' -exec chown www-data \{\} \; -print
不知道,但完成工作。
如果您因任何原因需要更改内容,可以使用
进行更改sudo find ./src/MyBundle/SiteBundle/Entity -name '*.php' ! -name '*Repository.php' -exec chown youUser \{\} \; -print
你可以看到他们在这里讨论这个问题:
https://github.com/doctrine/doctrine2/commit/caf30b889bb898620d843d1ec4940d01fa1d8877