Payum Bundle Symfony 2 extended_pa​​yment_data

时间:2016-03-27 20:11:38

标签: symfony doctrine-orm payum

在Payum Bundle Setup之后,当我php app/console doctrine:schema:update --force时,我得到了这个例外:

  

C:\ wamp \ www \ shop_ @ stable> php app / console doctrine:schema:update --force

     

[学说\ DBAL \ DBALException]
    未知的列类型" extended_pa​​yment_data"请求。您使用的任何Doctrine类型     s要注册\ Doctrine \ DBAL \ Types \ Type :: addType()。你可以得到所有的清单     使用\ Doctrine \ DBAL \ Types \ Type :: getTypesMap()的已知类型。如果发生此错误duri
    ng数据库内省然后您可能忘记注册所有数据库类型     一种学说类型。使用AbstractPlatform #registerDoctrineTypeMapping()或使用您的自定义
    types实现Type#getMappedDatabaseTypes()。如果类型名称为空,则可能有     缓存有问题或忘记了一些映射信息。

这是我的composer.json内容:

"require": {
    "php": ">=5.5.12",
    "symfony/symfony": "2.8.0",
    "doctrine/dbal": "2.4",
    "doctrine/orm": "2.4",
    "doctrine/doctrine-bundle": "~1.4",
    "symfony/assetic-bundle": "~2.3",
    "symfony/swiftmailer-bundle": "~2.3",
    "symfony/monolog-bundle": "~2.4",
    "sensio/distribution-bundle": "~4.0",
    "sensio/framework-extra-bundle": "^3.0.2",
    "incenteev/composer-parameter-handler": "~2.0",
    "friendsofsymfony/user-bundle": "~2.0@dev",
    "php-http/curl-client": "^1.3",
    "payum/paypal-express-checkout-nvp": "^1.2",
    "payum/payum-bundle": "^2.0"
},

2 个答案:

答案 0 :(得分:1)

您必须安装jms:

composer require jms/payment-core-bundle

谢谢

答案 1 :(得分:0)

这不是因为Payum分期付款,而是因为你删除了JMSPaymentBundle。问题来自那里,有一个学说类型:https://github.com/schmittjoh/JMSPaymentCoreBundle/blob/master/Entity/ExtendedDataType.php。存储在数据库中的有关此类型的信息,并且doctrine正试图在代码中找到这样的类型,但它不再存在。

解决方案:再次安装jms包,删除与其相关的表并生成迁移(因此prod也正确更新)。将其部署到prod。只有在那之后你才能删除jms支付包。