Symfony 2.4.2 作曲家迁移包
Posted
技术标签:
【中文标题】Symfony 2.4.2 作曲家迁移包【英文标题】:Symfony 2.4.2 composer Migrations bundle 【发布时间】:2014-04-24 20:40:17 【问题描述】:我正在试用 Symfony,但在我决定不测试迁移后遇到了一些问题。
从我了解到的文档中,我必须将其添加到作曲家 json。
"doctrine/doctrine-migrations-bundle": "dev-master",
这就是我现在所拥有的:
"require":
"php": ">=5.3.3",
"symfony/symfony": "~2.4",
"doctrine/orm": "~2.2,>=2.2.3",
"doctrine/doctrine-bundle": "~1.2",
"doctrine/doctrine-migrations-bundle": "dev-master",
"twig/extensions": "~1.0",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"sensio/distribution-bundle": "~2.3",
"sensio/framework-extra-bundle": "~3.0",
"sensio/generator-bundle": "~2.3",
"incenteev/composer-parameter-handler": "~2.0"
,
但这不起作用。它找不到正确的版本。
这是错误:
问题 1 - 学说/学说迁移捆绑开发大师的安装请求 -> 学说/学说迁移捆绑 [开发大师] 可满足。 - 学说/学说迁移包 dev-master 需要学说/迁移 * -> 找不到匹配的包。
潜在原因: - 包名中的拼写错误 - 根据您的最低稳定性设置,该软件包在足够稳定的版本中不可用 有关详细信息,请参阅https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion。
在这之后和大量的谷歌搜索 (https://github.com/doctrine/DoctrineMigrationsBundle/issues/54) 并尝试我尝试设置 "doctrine/doctrine-bundle": "~1.2" 的版本,以要求 aplha 版本。这确实继续安装,但引入了一个新问题。
将此行添加到应用程序内核到 $bundles 数组后:
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
我尝试在终端中运行它:php app/console dictionary:migrations:status
但它给了我以下错误:
致命错误:在 /Applications/MAMP/htdocs/symfony/vendor/doctrine/doctrine-migrations-bundle/Doctrine/Bundle/MigrationsBundle/ 中找不到类 'Doctrine\DBAL\Migrations\Tools\Console\Command\LatestCommand'第 30 行的 Command/MigrationsLatestDoctrineCommand.php
现在我真的不知道我错过了什么。我不知道如何让这个工作。我希望有人能给我推动正确的方向!谢谢!
【问题讨论】:
【参考方案1】:您应该检查https://packagist.org/packages/doctrine/doctrine-migrations-bundle 并尝试安装最新版本。指定更精确的版本对整体稳定性更好,因为获取最新软件包的composer update
可能会对您的应用程序的稳定性产生影响。
【讨论】:
【参考方案2】:如果要安装doctrine/doctrine-migrations-bundle
,还需要安装doctrine/migrations
。根据您复制/粘贴的 composer.json,您忘记添加了。
尝试以下方法:
"require":
"php": ">=5.3.3",
"symfony/symfony": "~2.4",
"doctrine/orm": "~2.2,>=2.2.3",
"doctrine/doctrine-bundle": "~1.2",
"doctrine/migrations" : "dev-master",
"doctrine/doctrine-migrations-bundle" : "dev-master",
"twig/extensions": "~1.0",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"sensio/distribution-bundle": "~2.3",
"sensio/framework-extra-bundle": "~3.0",
"sensio/generator-bundle": "~2.3",
"incenteev/composer-parameter-handler": "~2.0"
,
您收到此错误:
Fatal error: Class 'Doctrine\DBAL\Migrations\Tools\Console\Command\LatestCommand' not found in /Applications/MAMP/htdocs/symfony/vendor/doctrine/doctrine-migrations-bundle/Doctrine/Bundle/MigrationsBundle/Command/MigrationsLatestDoctrineCommand.php on line 30
因为doctrine/migrations
尚未下载,并且doctrine/doctrine-migrations-bundle
缺少几个类。
【讨论】:
我在这里完全遗漏了什么吗?第6行是别的吗? :) @DionSnoeijen,第 6 行确实与第 7 行不同。这是捆绑包正常工作所需的所有组件。您也可以只安装doctrine/migrations
并自行使用其组件,但我认为这不是您要在这里实现的目标;)
哦!我真是太愚蠢了。我完全错过了!谢谢大佬!以上是关于Symfony 2.4.2 作曲家迁移包的主要内容,如果未能解决你的问题,请参考以下文章
如何使用相互依赖的作曲家同时安装 2 个 Symfony 包
当供应商在 Symfony 2.1 中不受作曲家管理时,在哪里注册自动加载?