2018-12-24 20:35:25 +00:00
|
|
|
<?php
|
|
|
|
namespace Misuzu\DatabaseMigrations\AddWarningsTable;
|
|
|
|
|
|
|
|
use PDO;
|
|
|
|
|
|
|
|
function migrate_up(PDO $conn): void
|
|
|
|
{
|
|
|
|
$conn->exec("
|
|
|
|
CREATE TABLE `msz_user_warnings` (
|
|
|
|
`warning_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
|
|
`user_id` INT(10) UNSIGNED NOT NULL,
|
|
|
|
`user_ip` VARBINARY(16) NOT NULL,
|
|
|
|
`issuer_id` INT(10) UNSIGNED NULL DEFAULT NULL,
|
|
|
|
`issuer_ip` VARBINARY(16) NOT NULL,
|
|
|
|
`warning_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
2018-12-25 21:41:28 +00:00
|
|
|
`warning_duration` TIMESTAMP NULL DEFAULT NULL,
|
2018-12-24 20:35:25 +00:00
|
|
|
`warning_type` TINYINT(3) UNSIGNED NOT NULL,
|
|
|
|
`warning_note` VARCHAR(255) NOT NULL,
|
2018-12-25 21:41:28 +00:00
|
|
|
`warning_note_private` TEXT NULL DEFAULT NULL,
|
2018-12-24 20:35:25 +00:00
|
|
|
PRIMARY KEY (`warning_id`),
|
|
|
|
INDEX `user_warnings_user_foreign` (`user_id`),
|
|
|
|
INDEX `user_warnings_issuer_foreign` (`issuer_id`),
|
2018-12-25 21:41:28 +00:00
|
|
|
INDEX `user_warnings_indices` (`warning_created`, `warning_type`, `warning_duration`),
|
2018-12-24 20:35:25 +00:00
|
|
|
CONSTRAINT `user_warnings_issuer_foreign`
|
|
|
|
FOREIGN KEY (`issuer_id`)
|
|
|
|
REFERENCES `msz_users` (`user_id`)
|
|
|
|
ON UPDATE CASCADE
|
|
|
|
ON DELETE SET NULL,
|
|
|
|
CONSTRAINT `user_warnings_user_foreign`
|
|
|
|
FOREIGN KEY (`user_id`)
|
|
|
|
REFERENCES `msz_users` (`user_id`)
|
|
|
|
ON UPDATE CASCADE
|
|
|
|
ON DELETE CASCADE
|
|
|
|
)
|
|
|
|
");
|
2018-12-25 21:41:28 +00:00
|
|
|
|
|
|
|
$conn->exec("
|
|
|
|
CREATE TABLE `msz_ip_blacklist` (
|
|
|
|
`ip_subnet` VARBINARY(16) NOT NULL,
|
|
|
|
`ip_mask` TINYINT(3) UNSIGNED NOT NULL,
|
|
|
|
UNIQUE INDEX `ip_blacklist_unique` (`ip_subnet`, `ip_mask`)
|
|
|
|
)
|
|
|
|
");
|
2018-12-24 20:35:25 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function migrate_down(PDO $conn): void
|
|
|
|
{
|
|
|
|
$conn->exec("
|
|
|
|
DROP TABLE `msz_user_warnings`;
|
|
|
|
");
|
|
|
|
}
|