Hello everyone! I am OSiRiS, also known as OSiUX and I work at
gcoop Free Software Cooperative, where we develop CRM from the
2007.
I share the project in case anyone is interested, the script It is GPL
and I accept suggestions and improvements.
IT IS A DEVELOPING TOOL, USE WITH CAUTION!
After testing on a test instance of SuiteCRM v8.5.1, it is
necessary to prune the custom module tables gcoop and to simplify and
automate the task, the script suitecrm-prune is executed which
perform the following steps:
-
Obtain own module tables, filter by prefix (example:
%gcoop%) -
Get tables with suffix
_cstmfiltered by prefix defined in01 -
Get tables with suffix
_auditfiltered by prefix defined in01 -
Get the relationships between tables found in
01,02and03 -
Get totals from each table before prune database.
-
Execute dump of records to be deleted (when
RUN_DUMP=1is defined) -
Prune records with logical deletion (
deleted=1) -
Prune records before a specified date (
BEFORE_DATE=2024-10-09) -
Prune records from
_audittables -
Prune records from
_cstmtable -
Prune orphaned records based on relationships found in
04 -
Generate report and verify eliminated totals.
IT IS NECESSARY TO PERFORM A BACKUP PRIOR TO THE EXECUTION OF
suitecrm-prune AS IT IS A TOOL UNDER DEVELOPMENT AND COULD
DELETE MORE RECORDS THAN EXPECTED!
It is possible to define a regular expression of tables to be deleted in
the REGEX_TABLES_EXCLUDE variable.
SUMMARY PRUNE DATABASE suitecrm ON localhost AT 2024-08-09 13:24:30 PID 1778628
# cat .suitecrm-prune.cfg
DRY_RUN=0
TABLES_LIKE=%gcoop%
BEFORE_DATE=2024-08-09
DB_NAME=suitecrm
DB_PORT=3306
DB_HOST=localhost
DB_USER=suitecrm
DB_PASS=suitecrm
SHOW_LOG=0
REGEX_TABLES_EXCLUDE=^(config|contacts|fields_meta_data|gcoop_alertas|gcoop_alertas_estados|gcoop_detalles|gcoop_estados|gcoop_filiales|gcoop_impresoras|gcoop_ma_atm_cd|gcoop_ma_tas|gcoop_parametrias|gcoop_proveedores|gcoop_tipificaciones|gcoop_tipos|gcoop_transiciones|jjwg_Maps|relationships|securitygroups|securitygroups_records|securitygroups_users|user_preferences|users)$
# suitecrm-prune
BEFORE_DATE=2024-08-09
RUN_AUDIT=1
RUN_CSTM=1
RUN_DATE=1
RUN_DELETED=1
RUN_ORPHAN=1
TABLES_LIKE=%gcoop%
| table | BEFORE | DELETED | DATE | AUDIT | CSTM | ORPHAN | TOTAL | AFTER | CHECK |
|---|---|---|---|---|---|---|---|---|---|
| aop_case_updates | 395 | 0 | 395 | 0 | 0 | 0 | 395 | 0 | OK |
| cases | 20 | 0 | 20 | 0 | 0 | 0 | 20 | 0 | OK |
| cases_gcoop_incidencias | 14 | 0 | 14 | 0 | 0 | 0 | 14 | 0 | OK |
| contacts | 6207 | 1 | 6207 | 0 | 0 | 0 | 6208 | 6207 | EX |
| gcoop_alertas | 34 | 0 | 34 | 0 | 0 | 6 | 52 | 34 | EX |
| gcoop_alertas_audit | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | EM |
| gcoop_alertas_estados | 12 | 0 | 12 | 0 | 0 | 0 | 12 | 12 | EX |
| gcoop_alertas_estados_audit | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | EM |
| gcoop_bitacoradellamadas | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | EM |
| gcoop_bitacoradellamadas_audit | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | EM |
| gcoop_circuitos | 7 | 0 | 7 | 0 | 0 | 0 | 7 | 0 | OK |
| gcoop_detalles | 885 | 0 | 885 | 0 | 0 | 1 | 886 | 885 | EX |
| gcoop_emails | 27 | 0 | 27 | 0 | 0 | 0 | 27 | 0 | OK |
| gcoop_estados | 5 | 0 | 5 | 0 | 0 | 4 | 9 | 5 | EX |
| gcoop_filiales | 503 | 0 | 503 | 0 | 0 | 0 | 503 | 503 | EX |
| gcoop_filiales_audit | 10 | 0 | 10 | 0 | 0 | 0 | 10 | 0 | OK |
| gcoop_impresoras | 1894 | 1 | 1894 | 0 | 0 | 0 | 1895 | 1894 | EX |
| gcoop_impresoras_audit | 769 | 0 | 769 | 0 | 0 | 0 | 769 | 0 | OK |
| gcoop_incidencias | 266 | 1 | 265 | 0 | 0 | 0 | 266 | 0 | OK |
| gcoop_incidencias_audit | 272 | 0 | 272 | 0 | 0 | 0 | 272 | 0 | OK |
| gcoop_ma_atm_cd | 1551 | 173 | 1551 | 0 | 0 | 0 | 1724 | 1551 | EX |
| gcoop_ma_atm_cd_audit | 3861 | 0 | 3861 | 0 | 0 | 0 | 3861 | 0 | OK |
| gcoop_ma_tas | 989 | 75 | 989 | 0 | 0 | 0 | 1064 | 989 | EX |
| gcoop_ma_tas_audit | 1336 | 0 | 1336 | 0 | 0 | 0 | 1336 | 0 | OK |
| gcoop_noticias | 20 | 0 | 20 | 0 | 0 | 0 | 20 | 0 | OK |
| gcoop_noticias_audit | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | EM |
| gcoop_origenes_de_problemas | 9 | 4 | 5 | 0 | 0 | 0 | 9 | 0 | OK |
| gcoop_origenes_de_problemas_audit | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | EM |
| gcoop_parametrias | 190 | 0 | 190 | 0 | 0 | 0 | 190 | 190 | EX |
| gcoop_parametrias_audit | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | EM |
| gcoop_proveedores | 4 | 0 | 4 | 0 | 0 | 0 | 4 | 4 | EX |
| gcoop_proveedores_audit | 2 | 0 | 2 | 0 | 0 | 0 | 2 | 0 | OK |
| gcoop_socios | 43 | 0 | 43 | 0 | 0 | 0 | 43 | 0 | OK |
| gcoop_soluciones | 7 | 0 | 7 | 0 | 0 | 0 | 7 | 0 | OK |
| gcoop_soluciones_audit | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | EM |
| gcoop_tipificaciones | 295 | 1 | 295 | 0 | 0 | 0 | 591 | 295 | EX |
| gcoop_tipos | 321 | 0 | 321 | 0 | 0 | 0 | 321 | 321 | EX |
| gcoop_transiciones | 14 | 0 | 14 | 0 | 0 | 0 | 28 | 14 | EX |
| gcoop_workstations | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | EM |
| gcoop_workstations_audit | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | EM |
| notes | 96 | 0 | 96 | 0 | 0 | 0 | 96 | 0 | OK |
| securitygroups | 19 | 0 | 19 | 0 | 0 | 0 | 19 | 19 | EX |
| users | 449 | 0 | 449 | 0 | 0 | 0 | 449 | 449 | EX |
| TABLES | TOTAL |
|---|---|
| OK | 17 |
| EMPTY | 10 |
| EXCLUDE | 16 |
| ERROR | 0 |
| TOTAL | 43 |