From bf6a8ca6265ee2c1d3452296182c8018ba9d8a14 Mon Sep 17 00:00:00 2001
From: Ievgen Shakhsuvarov <ishakhsuvarov@magento.com>
Date: Wed, 10 Jan 2018 16:15:54 +0200
Subject: [PATCH] Fix vault_payment_token install script type where column
 defaults were not set  - UpgradeSchema script added

---
 .../Magento/Vault/Setup/UpgradeSchema.php     | 51 +++++++++++++++++++
 app/code/Magento/Vault/etc/module.xml         |  2 +-
 2 files changed, 52 insertions(+), 1 deletion(-)
 create mode 100644 app/code/Magento/Vault/Setup/UpgradeSchema.php

diff --git a/app/code/Magento/Vault/Setup/UpgradeSchema.php b/app/code/Magento/Vault/Setup/UpgradeSchema.php
new file mode 100644
index 00000000000..643bd1751f6
--- /dev/null
+++ b/app/code/Magento/Vault/Setup/UpgradeSchema.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Vault\Setup;
+
+use Magento\Framework\Setup\ModuleContextInterface;
+use Magento\Framework\Setup\SchemaSetupInterface;
+use Magento\Framework\Setup\UpgradeSchemaInterface;
+use Magento\Framework\DB\Ddl\Table;
+
+/**
+ * Upgrade the Vault module DB scheme
+ */
+class UpgradeSchema implements UpgradeSchemaInterface
+{
+    /**
+     * @inheritdoc
+     */
+    public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
+    {
+        $setup->startSetup();
+        if (version_compare($context->getVersion(), '2.0.3', '<')) {
+            $this->upgradeTokenTableDefaultValues($setup);
+        }
+        $setup->endSetup();
+    }
+
+    /**
+     * @param SchemaSetupInterface $setup
+     * @return void
+     */
+    private function upgradeTokenTableDefaultValues(SchemaSetupInterface $setup)
+    {
+        $columns = ['is_active', 'is_visible'];
+
+        foreach ($columns as $columnName) {
+            $setup->getConnection()->modifyColumn(
+                $setup->getTable(InstallSchema::PAYMENT_TOKEN_TABLE),
+                $columnName,
+                [
+                    'type' => Table::TYPE_BOOLEAN,
+                    'nullable' => false,
+                    'default' => '1'
+                ]
+            );
+        }
+    }
+}
diff --git a/app/code/Magento/Vault/etc/module.xml b/app/code/Magento/Vault/etc/module.xml
index 1a7d1fe7d09..253e7f13aaa 100644
--- a/app/code/Magento/Vault/etc/module.xml
+++ b/app/code/Magento/Vault/etc/module.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
-    <module name="Magento_Vault" setup_version="2.0.2">
+    <module name="Magento_Vault" setup_version="2.0.3">
         <sequence>
             <module name="Magento_Sales"/>
             <module name="Magento_Store"/>
-- 
GitLab