mysqldelete.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/env node
  2. var cli = require('cli'),
  3. options = cli.parse({
  4. leave: ['l', 'Period of time', 'string', '1d'],
  5. host: ['h', 'MySQL host', 'string', 'mysql'],
  6. port: ['p', 'MySQL port', 'string', '3306'],
  7. user: ['u', 'MySQL user', 'string', 'root'],
  8. password: ['pw', 'MySQL password', 'string', '235r2342gtfsw'],
  9. database: ['d', 'MySQL database', 'string', 'statsd_db']
  10. })
  11. ;
  12. var mysql = require('mysql');
  13. var connection = mysql.createConnection({
  14. host: options.host,
  15. port: options.port,
  16. user: options.user,
  17. password: options.password,
  18. database: options.database,
  19. multipleStatements: true
  20. });
  21. var moment = require('moment');
  22. var n = parseInt(options.leave, 10);
  23. var from = moment().subtract(n, options.leave.replace(n, '')).format('X');
  24. var to = moment().format('X');
  25. var mysql_tables = ['gauges_statistics', 'counters_statistics', 'timers_statistics', 'sets_statistics'];
  26. for (var i = 0; i < mysql_tables.length; i++) {
  27. console.log('DELETE FROM '+mysql_tables[i]+' WHERE timestamp <= '+from+' OR timestamp >= '+to+';');
  28. connection.query('DELETE FROM '+mysql_tables[i]+' WHERE timestamp <= '+from+' OR timestamp >= '+to+';', function (err, rows, fields) {
  29. if (err) {
  30. connection.end();
  31. console.log(err);
  32. throw err;
  33. }
  34. for (var i = 0; i <= rows.length - 1; i++) {
  35. console.log(rows[i]);
  36. }
  37. });
  38. }
  39. connection.end();