mirror of
https://github.com/slawkens/myaac.git
synced 2025-11-01 00:16:24 +01:00
Fix migration 47.php (convert IPs)
This commit is contained in:
@@ -277,6 +277,7 @@ class OTS_DB_MySQL extends OTS_Base_DB
|
|||||||
'field' => $result['Field'],
|
'field' => $result['Field'],
|
||||||
'type' => $result['Type'],
|
'type' => $result['Type'],
|
||||||
'null' => strtolower($result['Null']),
|
'null' => strtolower($result['Null']),
|
||||||
|
'key' => strtolower($result['Key'] ?? ''),
|
||||||
'default' => $result['Default'],
|
'default' => $result['Default'],
|
||||||
'extra' => $result['Extra'],
|
'extra' => $result['Extra'],
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -6,20 +6,35 @@
|
|||||||
// 2025-02-27
|
// 2025-02-27
|
||||||
// remove ipv6, change to ip (for both ipv4 + ipv6) as VARCHAR(45)
|
// remove ipv6, change to ip (for both ipv4 + ipv6) as VARCHAR(45)
|
||||||
$up = function () use ($db) {
|
$up = function () use ($db) {
|
||||||
$db->query("ALTER TABLE `myaac_account_actions` DROP KEY `account_id`;");
|
$accountActionsInfo = $db->getColumnInfo(TABLE_PREFIX . 'account_actions', 'account_id');
|
||||||
$db->query("ALTER TABLE `myaac_account_actions` ADD COLUMN `id` INT(11) NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`);");
|
if ($accountActionsInfo && is_array($accountActionsInfo) && $accountActionsInfo['key'] == 'pri') {
|
||||||
|
$db->query("ALTER TABLE `myaac_account_actions` DROP KEY `account_id`;");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$db->hasColumn(TABLE_PREFIX . 'account_actions', 'id')) {
|
||||||
|
$db->addColumn(TABLE_PREFIX . 'account_actions', 'id', 'INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`)');
|
||||||
|
}
|
||||||
|
|
||||||
$db->modifyColumn(TABLE_PREFIX . 'account_actions', 'ip', "VARCHAR(45) NOT NULL DEFAULT ''");
|
$db->modifyColumn(TABLE_PREFIX . 'account_actions', 'ip', "VARCHAR(45) NOT NULL DEFAULT ''");
|
||||||
$db->query("UPDATE `" . TABLE_PREFIX . "account_actions` SET `ip` = INET_NTOA(`ip`) WHERE `ip` != '0';");
|
$db->query("UPDATE `" . TABLE_PREFIX . "account_actions` SET `ip` = INET_NTOA(`ip`) WHERE `ip` != '0';");
|
||||||
$db->query("UPDATE `" . TABLE_PREFIX . "account_actions` SET `ip` = INET6_NTOA(`ipv6`) WHERE `ip` = '0';");
|
$db->query("UPDATE `" . TABLE_PREFIX . "account_actions` SET `ip` = INET6_NTOA(`ipv6`) WHERE `ip` = '0';");
|
||||||
$db->dropColumn(TABLE_PREFIX . 'account_actions', 'ipv6');
|
|
||||||
|
if ($db->hasColumn(TABLE_PREFIX . 'account_actions', 'ipv6')) {
|
||||||
|
$db->dropColumn(TABLE_PREFIX . 'account_actions', 'ipv6');
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
$down = function () use ($db) {
|
$down = function () use ($db) {
|
||||||
$db->query("ALTER TABLE `" . TABLE_PREFIX . "account_actions` DROP `id`;");
|
if ($db->hasColumn(TABLE_PREFIX . 'account_actions', 'id')) {
|
||||||
|
$db->query("ALTER TABLE `" . TABLE_PREFIX . "account_actions` DROP `id`;");
|
||||||
|
}
|
||||||
|
|
||||||
$db->query("ALTER TABLE `" . TABLE_PREFIX . "account_actions` ADD KEY (`account_id`);");
|
$db->query("ALTER TABLE `" . TABLE_PREFIX . "account_actions` ADD KEY (`account_id`);");
|
||||||
|
|
||||||
$db->addColumn(TABLE_PREFIX . 'account_actions', 'ipv6', "BINARY(16) NOT NULL DEFAULT 0x00000000000000000000000000000000 AFTER ip");
|
if (!$db->hasColumn(TABLE_PREFIX . 'account_actions', 'ipv6')) {
|
||||||
|
$db->addColumn(TABLE_PREFIX . 'account_actions', 'ipv6', "BINARY(16) NOT NULL DEFAULT 0x00000000000000000000000000000000 AFTER ip");
|
||||||
|
}
|
||||||
|
|
||||||
$db->query("UPDATE `" . TABLE_PREFIX . "account_actions` SET `ipv6` = INET6_ATON(ip) WHERE NOT IS_IPV4(`ip`);");
|
$db->query("UPDATE `" . TABLE_PREFIX . "account_actions` SET `ipv6` = INET6_ATON(ip) WHERE NOT IS_IPV4(`ip`);");
|
||||||
$db->query("UPDATE `" . TABLE_PREFIX . "account_actions` SET `ip` = INET_ATON(`ip`) WHERE IS_IPV4(`ip`);");
|
$db->query("UPDATE `" . TABLE_PREFIX . "account_actions` SET `ip` = INET_ATON(`ip`) WHERE IS_IPV4(`ip`);");
|
||||||
$db->query("UPDATE `" . TABLE_PREFIX . "account_actions` SET `ip` = 0 WHERE `ipv6` != 0x00000000000000000000000000000000;");
|
$db->query("UPDATE `" . TABLE_PREFIX . "account_actions` SET `ip` = 0 WHERE `ipv6` != 0x00000000000000000000000000000000;");
|
||||||
|
|||||||
Reference in New Issue
Block a user