49 lines
1.7 KiB
PHP
49 lines
1.7 KiB
PHP
<?php
|
|
|
|
defined('BASEPATH') or exit('No direct script access allowed');
|
|
|
|
class Migration_Version_211 extends App_module_migration
|
|
{
|
|
/** @var CI_DB_query_builder */
|
|
protected $db;
|
|
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
|
|
// Properly initialize the database once the migration is constructed
|
|
$CI = &get_instance();
|
|
$CI->load->database();
|
|
$this->db = $CI->db;
|
|
}
|
|
|
|
public function up()
|
|
{
|
|
// Add rate limiting columns to api_usage_logs table
|
|
if (!$this->db->field_exists('rate_limit_checked', db_prefix() . 'api_usage_logs')) {
|
|
$this->db->query("
|
|
ALTER TABLE `" . db_prefix() . "api_usage_logs`
|
|
ADD `rate_limit_checked` tinyint(1) NOT NULL DEFAULT 0 AFTER `user_agent`,
|
|
ADD `rate_limit_type` varchar(20) NULL AFTER `rate_limit_checked`,
|
|
ADD `rate_limit_limit` int(11) NULL AFTER `rate_limit_type`,
|
|
ADD `rate_limit_current` int(11) NULL AFTER `rate_limit_limit`,
|
|
ADD `rate_limit_exceeded` tinyint(1) NOT NULL DEFAULT 0 AFTER `rate_limit_current`
|
|
");
|
|
}
|
|
}
|
|
|
|
public function down()
|
|
{
|
|
// Remove rate limiting columns from api_usage_logs table
|
|
if ($this->db->field_exists('rate_limit_checked', db_prefix() . 'api_usage_logs')) {
|
|
$this->db->query("
|
|
ALTER TABLE `" . db_prefix() . "api_usage_logs`
|
|
DROP COLUMN `rate_limit_checked`,
|
|
DROP COLUMN `rate_limit_type`,
|
|
DROP COLUMN `rate_limit_limit`,
|
|
DROP COLUMN `rate_limit_current`,
|
|
DROP COLUMN `rate_limit_exceeded`
|
|
");
|
|
}
|
|
}
|
|
} |