File: dbm2mysql.pl

package info (click to toggle)
blootbot 1.1.0-2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 1,420 kB
  • ctags: 586
  • sloc: perl: 15,941; sh: 154; makefile: 56; sql: 45
file content (54 lines) | stat: -rwxr-xr-x 1,133 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/perl
# by the xk.
###

require "src/core.pl";
require "src/logger.pl";
require "src/modules.pl";

require "src/Misc.pl";
require "src/Files.pl";
&loadDBModules();
package MYSQL;
require "src/db_mysql.pl";
package DBM;
require "src/db_dbm.pl";
package main;

if (!scalar @ARGV) {
    print "Usage: dbm2mysql <whatever dbm>\n";
    print "Example: dbm2mysql.pl apt\n";
    print "NOTE: suffix '-is' and '-extra' are used.\n";
    exit 0;
}

my $dbfile = shift;
my $key;
my %db;

### open all the data...
&loadConfig("files/blootbot.config");
$dbname = $param{'DBName'};
my $dbh_mysql = MYSQL::openDB($param{'DBName'}, $param{'SQLUser'}, $param{'SQLPass'});
DBM::openDB();

print "scalar db == '". scalar(keys %db) ."'.\n";

my ($ndef, $i) = (1,1);
my $factoid;
foreach $factoid (keys %db) {
    foreach (@DBM::extra_format) {
	my $val = &DBM::getFactInfo($key, $_, $db{$key});
	if (!defined $val) {
	    $ndef++;
	    next;
	}
	&MYSQL::setFactInfo($key, $_, $val); # fact, type, what
    }
    $i++;
    print "i=$i... " if ($i % 100 == 0);
    print "ndef=$ndef... " if ($ndef % 1000 == 0);
}

print "Done.\n";
&closeDB();