【问题标题】:Symfony 2.4.2 composer Migrations bundleSymfony 2.4.2 作曲家迁移包
【发布时间】: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

现在我真的不知道我错过了什么。我不知道如何让这个工作。我希望有人能给我推动正确的方向!谢谢!

【问题讨论】:

    标签: php symfony doctrine


    【解决方案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 并自行使用其组件,但我认为这不是您要在这里实现的目标;)
      • 哦!我真是太愚蠢了。我完全错过了!谢谢大佬!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 2020-02-27
      • 2017-04-26
      • 2015-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多