| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #!/usr/bin/perl
- #
- # Copyright (C) Roman Dmitiriev, rnd@rajven.ru
- #
- #Скрипт нужен для переноса юзеровских девайсов в системные при нахождении юзеровскийх моделей/вендоров в новой системной таблице
- use FindBin '$Bin';
- use lib "$Bin/";
- use Data::Dumper;
- use Rstat::config;
- use Rstat::main;
- use Rstat::mysql;
- use Rstat::net_utils;
- use strict;
- use warnings;
- print "Stage 0: Upgrade DB\n";
- my @nSQL=read_file("last-vendors-models.sql");
- foreach my $row (@nSQL) {
- next if ($row!~/^REPLACE/);
- do_sql($dbh,$row);
- }
- print "Stage 1: Devices\n";
- #new models
- my @dev_models = get_records_sql($dbh,"SELECT * FROM device_models WHERE id>=10000");
- foreach my $row (@dev_models) {
- print "Dev: $row->{id} $row->{model_name} =>";
- #search hardcoded models with some name
- my $model = get_record_sql($dbh,"SELECT * FROM device_models WHERE id <>".$row->{id}." AND LOWER(model_name)='".lc(trim($row->{model_name}))."'");
- if ($model) {
- print "... found id: $model->{id}. Migrated.";
- do_sql($dbh,"DELETE FROM device_models WHERE id=".$row->{id});
- do_sql($dbh,"UPDATE devices SET device_model_id=".$model->{id}." WHERE device_model_id=".$row->{id});
- do_sql($dbh,"UDPATE User_auth SET device_model_id=".$model->{id}." WHERE device_model_id=".$row->{id});
- }
- }
- print "Done!\n";
- print "Stage 2: Vendors\n";
- #new vendors
- my @dev_vendors = get_records_sql($dbh,"SELECT * FROM vendors WHERE id>=10000");
- foreach my $row (@dev_vendors) {
- print "Dev: $row->{id} $row->{name} =>";
- #search hardcoded vendors with some name
- my $vendor = get_record_sql($dbh,"SELECT * FROM vendors WHERE id <>".$row->{id}." AND LOWER(name)='".lc(trim($row->{name}))."'");
- if ($vendor) {
- print "... found id: $vendor->{id}. Migrated.";
- do_sql($dbh,"DELETE FROM vendors WHERE id=".$row->{id});
- do_sql($dbh,"UPDATE device_models SET vendor_id=".$vendor->{id}." WHERE vendor_id=".$row->{id});
- do_sql($dbh,"UDPATE devices SET vendor_id=".$vendor->{id}." WHERE vendor_id=".$row->{id});
- }
- }
- print "Done!\n";
- exit;
|