migrate-devices.pl 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/usr/bin/perl
  2. #
  3. # Copyright (C) Roman Dmitiriev, rnd@rajven.ru
  4. #
  5. use FindBin '$Bin';
  6. use lib "$Bin/";
  7. use Data::Dumper;
  8. use Rstat::config;
  9. use Rstat::main;
  10. use Rstat::mysql;
  11. use Rstat::net_utils;
  12. use strict;
  13. use warnings;
  14. print "Stage 1: Devices\n";
  15. my @devices = get_records_sql($dbh,"SELECT * FROM devices");
  16. foreach my $row (@devices) {
  17. next if (!$row->{device_model});
  18. print "Dev: $row->{id} $row->{device_name} Model: $row->{device_model} =>";
  19. my $model = get_record_sql($dbh,"SELECT * FROM device_models WHERE vendor_id=".$row->{vendor_id}." AND model_name='".trim($row->{device_model})."'");
  20. if (!$model) { print "... unknown!\n"; next; }
  21. print "id: $model->{id} $model->{model_name}\n";
  22. do_sql($dbh,"UPDATE devices SET device_model_id=".$model->{id}." WHERE id=".$row->{id});
  23. }
  24. print "Done!\n";
  25. print "Stage 2: Auth\n";
  26. @devices = get_records_sql($dbh,"SELECT * FROM User_auth WHERE host_model IS NOT NULL");
  27. foreach my $row (@devices) {
  28. next if (!$row->{host_model});
  29. print "Auth: $row->{id} $row->{ip} Model: $row->{host_model} =>";
  30. my $model = get_record_sql($dbh,"SELECT * FROM device_models WHERE model_name='".trim($row->{host_model})."'");
  31. if (!$model) { print "... unknown!\n"; next; }
  32. print "id: $model->{id} $model->{model_name}\n";
  33. do_sql($dbh,"UPDATE User_auth SET device_model_id=".$model->{id}." WHERE id=".$row->{id});
  34. }
  35. print "Done!\n";
  36. do_sql($dbh,"ALTER TABLE `User_auth` DROP `host_model`");
  37. do_sql($dbh,"ALTER TABLE `devices` DROP `device_model`");
  38. print "Done!\n";
  39. exit;