| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- <?php
- /**
- * This file is part of the Klarna KP module
- *
- * (c) Klarna Bank AB (publ)
- *
- * For the full copyright and license information, please view the NOTICE
- * and LICENSE files that were distributed with this source code.
- */
- namespace Klarna\Kp\Setup;
- use Magento\Framework\DB\Ddl\Table;
- use Magento\Framework\Setup\ModuleContextInterface;
- use Magento\Framework\Setup\SchemaSetupInterface;
- use Magento\Framework\Setup\UpgradeSchemaInterface;
- class UpgradeSchema implements UpgradeSchemaInterface
- {
- /**
- * Upgrades DB schema for a module
- *
- * @param SchemaSetupInterface $installer
- * @param ModuleContextInterface $context
- * @return void
- */
- public function upgrade(SchemaSetupInterface $installer, ModuleContextInterface $context)
- {
- $installer->startSetup();
- if (version_compare($context->getVersion(), '4.0.3', '<')) {
- $this->addPaymentMethodsColumn($installer);
- }
- if (version_compare($context->getVersion(), '5.3.1', '<')) {
- $this->addPaymentMethodInfoColumn($installer);
- }
- if (version_compare($context->getVersion(), '5.5.3', '<')) {
- $this->dropForeignKeyInQuote($installer);
- }
- $installer->endSetup();
- }
- /**
- * Adding the payment_methods column to the klarna quote table
- *
- * @param SchemaSetupInterface $installer
- */
- private function addPaymentMethodsColumn(SchemaSetupInterface $installer)
- {
- $table = $installer->getTable('klarna_payments_quote');
- $ddl = $installer->getConnection()->describeTable($table);
- if (!isset($ddl['payment_methods'])) {
- $installer->getConnection()
- ->addColumn(
- $table,
- 'payment_methods',
- [
- 'type' => Table::TYPE_TEXT,
- 'length' => 255,
- 'comment' => 'Payment Method Categories'
- ]
- );
- }
- }
- /**
- * Adding the payment_method_info column to the klarna quote table
- *
- * @param SchemaSetupInterface $installer
- */
- private function addPaymentMethodInfoColumn(SchemaSetupInterface $installer)
- {
- $table = $installer->getTable('klarna_payments_quote');
- $ddl = $installer->getConnection()->describeTable($table);
- if (!isset($ddl['payment_method_info'])) {
- $installer->getConnection()
- ->addColumn(
- $table,
- 'payment_method_info',
- [
- 'type' => Table::TYPE_TEXT,
- 'length' => 4096,
- 'comment' => 'Payment Method Category Info'
- ]
- );
- }
- }
- /**
- * Dropping a foreign key in the klarna quote table
- *
- * @param SchemaSetupInterface $installer
- */
- private function dropForeignKeyInQuote(SchemaSetupInterface $installer)
- {
- $installer->getConnection()->dropForeignKey(
- $installer->getTable('klarna_payments_quote'),
- $installer->getFkName(
- 'klarna_payments_quote',
- 'quote_id',
- 'quote',
- 'entity_id'
- )
- );
- }
- }
|