在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_payment_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"
},
答案 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支付包。