From 714d6b5d4950e52cf1c3170bb59954f98ffd48bd Mon Sep 17 00:00:00 2001 From: Yassine Doghri <yassine@doghri.fr> Date: Fri, 11 Jun 2021 13:01:42 +0000 Subject: [PATCH] fix(analytics): update migrations to set decimal precision for latitude and longitude add unsigned for soundbites start time and duration --- .../2020-06-05-180000_add_soundbites.php | 2 ++ ...1-160000_add_analytics_podcasts_by_region.php | 4 ++-- ...1-210000_add_analytics_podcasts_procedure.php | 16 ++++++++-------- ...dd_analytics_unknown_useragents_procedure.php | 2 +- ...01-210000_add_analytics_website_procedure.php | 11 +++++++++-- 5 files changed, 22 insertions(+), 13 deletions(-) diff --git a/app/Database/Migrations/2020-06-05-180000_add_soundbites.php b/app/Database/Migrations/2020-06-05-180000_add_soundbites.php index cf20ee1d3c..90573d5194 100644 --- a/app/Database/Migrations/2020-06-05-180000_add_soundbites.php +++ b/app/Database/Migrations/2020-06-05-180000_add_soundbites.php @@ -34,10 +34,12 @@ class AddSoundbites extends Migration ], 'start_time' => [ 'type' => 'DECIMAL(8,3)', + 'unsigned' => true, ], 'duration' => [ // soundbite duration cannot be higher than 9999,999 seconds ~ 2.77 hours 'type' => 'DECIMAL(7,3)', + 'unsigned' => true, ], 'label' => [ 'type' => 'VARCHAR', diff --git a/app/Libraries/Analytics/Database/Migrations/2017-12-01-160000_add_analytics_podcasts_by_region.php b/app/Libraries/Analytics/Database/Migrations/2017-12-01-160000_add_analytics_podcasts_by_region.php index 57ee57b31a..39d3149243 100644 --- a/app/Libraries/Analytics/Database/Migrations/2017-12-01-160000_add_analytics_podcasts_by_region.php +++ b/app/Libraries/Analytics/Database/Migrations/2017-12-01-160000_add_analytics_podcasts_by_region.php @@ -37,11 +37,11 @@ class AddAnalyticsPodcastsByRegion extends Migration 'comment' => 'ISO 3166-2 code.', ], 'latitude' => [ - 'type' => 'DECIMAL', + 'type' => 'DECIMAL(8,6)', 'null' => true, ], 'longitude' => [ - 'type' => 'DECIMAL', + 'type' => 'DECIMAL(9,6)', 'null' => true, ], 'hits' => [ diff --git a/app/Libraries/Analytics/Database/Migrations/2017-12-01-210000_add_analytics_podcasts_procedure.php b/app/Libraries/Analytics/Database/Migrations/2017-12-01-210000_add_analytics_podcasts_procedure.php index b04b4e08b0..03c5fae434 100644 --- a/app/Libraries/Analytics/Database/Migrations/2017-12-01-210000_add_analytics_podcasts_procedure.php +++ b/app/Libraries/Analytics/Database/Migrations/2017-12-01-210000_add_analytics_podcasts_procedure.php @@ -26,14 +26,14 @@ class AddAnalyticsPodcastsProcedure extends Migration CREATE PROCEDURE `{$prefix}analytics_podcasts` ( IN `p_podcast_id` INT UNSIGNED, IN `p_episode_id` INT UNSIGNED, - IN `p_country_code` VARCHAR(3) CHARSET utf8mb4, - IN `p_region_code` VARCHAR(3) CHARSET utf8mb4, - IN `p_latitude` DECIMAL, - IN `p_longitude` DECIMAL, - IN `p_service` VARCHAR(128) CHARSET utf8mb4, - IN `p_app` VARCHAR(128) CHARSET utf8mb4, - IN `p_device` VARCHAR(32) CHARSET utf8mb4, - IN `p_os` VARCHAR(32) CHARSET utf8mb4, + IN `p_country_code` VARCHAR(3), + IN `p_region_code` VARCHAR(3), + IN `p_latitude` DECIMAL(8,6), + IN `p_longitude` DECIMAL(9,6), + IN `p_service` VARCHAR(128), + IN `p_app` VARCHAR(128), + IN `p_device` VARCHAR(32), + IN `p_os` VARCHAR(32), IN `p_bot` TINYINT(1) UNSIGNED, IN `p_filesize` INT UNSIGNED, IN `p_duration` INT UNSIGNED, diff --git a/app/Libraries/Analytics/Database/Migrations/2017-12-01-210000_add_analytics_unknown_useragents_procedure.php b/app/Libraries/Analytics/Database/Migrations/2017-12-01-210000_add_analytics_unknown_useragents_procedure.php index 918fa96097..e7a0f9b010 100644 --- a/app/Libraries/Analytics/Database/Migrations/2017-12-01-210000_add_analytics_unknown_useragents_procedure.php +++ b/app/Libraries/Analytics/Database/Migrations/2017-12-01-210000_add_analytics_unknown_useragents_procedure.php @@ -22,7 +22,7 @@ class AddAnalyticsUnknownUseragentsProcedure extends Migration // Example: CALL analytics_unknown_useragents('Podcasts/1430.46 CFNetwork/1125.2 Darwin/19.4.0'); $procedureName = $this->db->prefixTable('analytics_unknown_useragents'); $createQuery = <<<CODE_SAMPLE - CREATE PROCEDURE `{$procedureName}` (IN `p_useragent` VARCHAR(191) CHARSET utf8mb4) MODIFIES SQL DATA + CREATE PROCEDURE `{$procedureName}` (IN `p_useragent` VARCHAR(191)) MODIFIES SQL DATA DETERMINISTIC SQL SECURITY INVOKER COMMENT 'Add an unknown useragent to table {$procedureName}.' diff --git a/app/Libraries/Analytics/Database/Migrations/2017-12-01-210000_add_analytics_website_procedure.php b/app/Libraries/Analytics/Database/Migrations/2017-12-01-210000_add_analytics_website_procedure.php index 6f91cdddbf..8222abd9c7 100644 --- a/app/Libraries/Analytics/Database/Migrations/2017-12-01-210000_add_analytics_website_procedure.php +++ b/app/Libraries/Analytics/Database/Migrations/2017-12-01-210000_add_analytics_website_procedure.php @@ -22,10 +22,17 @@ class AddAnalyticsWebsiteProcedure extends Migration // Example: CALL analytics_website(1,'FR','Firefox'); $procedureName = $this->db->prefixTable('analytics_website'); $createQuery = <<<CODE_SAMPLE - CREATE PROCEDURE `{$procedureName}` (IN `p_podcast_id` INT UNSIGNED, IN `p_browser` VARCHAR(191) CHARSET utf8mb4, IN `p_entry_page` VARCHAR(512) CHARSET utf8mb4, IN `p_referer_url` VARCHAR(512) CHARSET utf8mb4, IN `p_domain` VARCHAR(128) CHARSET utf8mb4, IN `p_keywords` VARCHAR(384) CHARSET utf8mb4) MODIFIES SQL DATA + CREATE PROCEDURE `{$procedureName}` ( + IN `p_podcast_id` INT UNSIGNED, + IN `p_browser` VARCHAR(191), + IN `p_entry_page` VARCHAR(512), + IN `p_referer_url` VARCHAR(512), + IN `p_domain` VARCHAR(128), + IN `p_keywords` VARCHAR(384) + ) COMMENT 'Add one hit in website logs tables.' + MODIFIES SQL DATA DETERMINISTIC SQL SECURITY INVOKER - COMMENT 'Add one hit in website logs tables.' BEGIN SET @current_date = DATE(NOW()); -- GitLab