Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add 2 script for clean incremental_sync db #276

Merged
merged 8 commits into from
Apr 15, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions tools/clean_incremental_sync.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
-- Définir le nom de la base de données
fox-john marked this conversation as resolved.
Show resolved Hide resolved
SET @db_name = 'prestashop';
set @quantity_needed = '100000';

-- Récupérer le nom de la table avec le prefix
SET @table_with_prefix = (SELECT table_name
FROM information_schema.tables
WHERE table_schema = @db_name
AND table_name LIKE '%_eventbus_incremental_sync');

-- Supprime les entrées avec plus de X entrée de ce type (paramétré au dessus via la variable @quantity_needed)
SET @delete_query = CONCAT('
DELETE FROM ', @table_with_prefix, '
WHERE type IN (
SELECT type
FROM (
SELECT type, COUNT(*) as incr_type_count
FROM ', @table_with_prefix, '
GROUP BY type
HAVING COUNT(*) >', @quantity_needed, '
) AS subquery
);
');

-- Exécuter la requête dynamique directement
PREPARE dynamic_query FROM @delete_query;
EXECUTE dynamic_query;
22 changes: 22 additions & 0 deletions tools/count_incremental_sync.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
-- Définir le nom de la base de données et la quantité souhaité pour le clean
SET @db_name = 'prestashop';
set @quantity_needed = '100000';

-- Récupérer le nom de la table avec le prefix
SET @table_with_prefix = (SELECT table_name
FROM information_schema.tables
WHERE table_schema = @db_name
AND table_name LIKE '%_eventbus_incremental_sync');

-- Récupère la quantité d'entrées et le type associé
SET @get_content_with_extra_counts = CONCAT('
SELECT type,
COUNT(*) as incr_type_count
FROM ', @table_with_prefix, '
GROUP BY type
HAVING COUNT(*) >', @quantity_needed, '
');

-- Exécuter la requête dynamique directement
PREPARE dynamic_query FROM @get_content_with_extra_counts;
EXECUTE dynamic_query;
Loading