-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdb_update.pl
More file actions
executable file
·106 lines (55 loc) · 1.39 KB
/
db_update.pl
File metadata and controls
executable file
·106 lines (55 loc) · 1.39 KB
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#!/usr/bin/env perl
use 5.10.0;
use common::sense;
use utf8;
use Getopt::Long;
use DBI;
use lib './lib';
use Table;
use Schema;
our $show = '';
my $host = '127.0.0.1';
my $base = 'fantlab';
my $port = '3306';
my $user = 'root';
my $pass = '';
our $real = 0;
GetOptions(
'show!' => \$show,
'host|h:s' => \$host,
'base|b:s' => \$base,
'port|P:s' => \$port,
'user|u:s' => \$user,
'password|p:s' => \$pass,
'real|r!' => \$real,
);
our $dbh = get_db();
say 'Working ' . ( $real ? 'IN' : 'NOT' ) . ' real!';
#--------------------------- Put your SQL below this line
# TODO: implement reading SQL files from the directory
say schema('fantlab')->collation;
unless ( table('test1')->has_index('PRIMARY') ) {
say "In 1";
table('test1')->alter('SQL here');
}
else {
say "In 2";
}
#=======================================
sub get_db {
my %config = (
'dsn' => $ENV{'mysqlconnection'} || qq~dbi:mysql:database=$base;host=$host;port=$port;mysql_connect_timeout=5~,
'user' => $ENV{'mysqluser'} || $user,
'password' => $ENV{'mysqlpassword'} || $pass,
);
return DBI->connect(
$config{dsn},
$config{user},
$config{password},
{
RaiseError => 1,
PrintError => 0,
FetchHashKeyName => 'NAME_lc',
},
);
}