MDL-70394 paygw_paypal: Fix the incorrect foreign key
authorShamim Rezaie <shamim@moodle.com>
Wed, 16 Dec 2020 13:15:47 +0000 (00:15 +1100)
committerShamim Rezaie <shamim@moodle.com>
Wed, 16 Dec 2020 13:26:48 +0000 (00:26 +1100)
payment/gateway/paypal/db/install.xml
payment/gateway/paypal/db/upgrade.php [new file with mode: 0644]
payment/gateway/paypal/version.php

index cd145ce..eb3c2fd 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<XMLDB PATH="payment/gateway/paypal/db" VERSION="20200110" COMMENT="XMLDB file for PayPal payment gateway plugin"
+<XMLDB PATH="payment/gateway/paypal/db" VERSION="20201216" COMMENT="XMLDB file for PayPal payment gateway plugin"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="../../../../lib/xmldb/xmldb.xsd"
 >
@@ -12,7 +12,7 @@
       </FIELDS>
       <KEYS>
         <KEY NAME="primary" TYPE="primary" FIELDS="id"/>
-        <KEY NAME="paymentid" TYPE="foreign-unique" FIELDS="paymentid" REFTABLE="payment" REFFIELDS="id"/>
+        <KEY NAME="paymentid" TYPE="foreign-unique" FIELDS="paymentid" REFTABLE="payments" REFFIELDS="id"/>
       </KEYS>
     </TABLE>
   </TABLES>
diff --git a/payment/gateway/paypal/db/upgrade.php b/payment/gateway/paypal/db/upgrade.php
new file mode 100644 (file)
index 0000000..03197e9
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Upgrade script for paygw_paypal.
+ *
+ * @package    paygw_paypal
+ * @copyright  2021 Shamim Rezaie <shamim@moodle.com>
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+defined('MOODLE_INTERNAL') || die();
+
+/**
+ * Upgrade the plugin.
+ *
+ * @param int $oldversion the version we are upgrading from
+ * @return bool always true
+ */
+function xmldb_paygw_paypal_upgrade(int $oldversion): bool {
+    global $DB;
+
+    $dbman = $DB->get_manager();
+
+    if ($oldversion < 2020110901) {
+        // Define key paymentid (foreign-unique) to be added to paygw_paypal.
+        $table = new xmldb_table('paygw_paypal');
+        $key = new xmldb_key('paymentid', XMLDB_KEY_FOREIGN_UNIQUE, ['paymentid'], 'payments', ['id']);
+
+        // Launch add key paymentid.
+        $dbman->add_key($table, $key);
+
+        // Paypal savepoint reached.
+        upgrade_plugin_savepoint(true, 2020110901, 'paygw', 'paypal');
+    }
+
+    return true;
+}
index 08b11f6..61f3748 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2020110900;        // The current plugin version (Date: YYYYMMDDXX).
+$plugin->version   = 2020110901;        // The current plugin version (Date: YYYYMMDDXX).
 $plugin->requires  = 2020110300;        // Requires this Moodle version.
 $plugin->component = 'paygw_paypal';       // Full name of the plugin (used for diagnostics).