84 lines
2.2 KiB
Perl
Executable File
84 lines
2.2 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
|
|
use strict;
|
|
use lib '/home/slowtwitch/forum.slowtwitch.com/cgi-bin/admin';
|
|
use GForum qw/$DB $CFG/;
|
|
|
|
GForum::init('/home/slowtwitch/forum.slowtwitch.com/cgi-bin/admin');
|
|
|
|
main();
|
|
|
|
sub main {
|
|
# Create the Poll table.
|
|
my $p = $DB->creator ('Poll');
|
|
$p->cols([
|
|
poll_id => { type => 'INT', not_null => 1 },
|
|
poll_question => { type => 'VARCHAR',size => '255',not_null => 1},
|
|
poll_answer => { type => 'VARCHAR',size => '255',not_null => 1},
|
|
poll_type => { type => 'TINYINT',default => '1',not_null => '1'},
|
|
poll_votes => { type => 'INT',not_null => 1},
|
|
poll_enabled => { type => 'TINYINT',default => '1',not_null => 1},
|
|
poll_date => { type => 'Date', not_null => 1},
|
|
poll_text => { type => 'TEXT', not_null => 0},
|
|
poll_home => { type => 'TINYINT',default => '0',not_null => 1},
|
|
]);
|
|
|
|
$p->pk('poll_id');
|
|
$p->ai('poll_id');
|
|
|
|
if (!$p->create and $GT::SQL::errcode eq 'TBLEXISTS') {
|
|
$p->set_defaults();
|
|
$p->save_schema();
|
|
}
|
|
|
|
# Create the PollAnswer table
|
|
my $a = $DB->creator ('PollAnswer');
|
|
$a->cols([
|
|
poll_answer_id => { type => 'INT', not_null => 1 },
|
|
poll_id_fk => { type => 'INT', not_null => 1 },
|
|
poll_answer_answer => {type => 'VARCHAR',size => '255',not_null => 1,default => 0},
|
|
poll_answer_votes => {type => 'INT',not_null => 1,default => 0}
|
|
]);
|
|
|
|
$a->pk('poll_answer_id');
|
|
$a->ai('poll_answer_id');
|
|
|
|
$a->fk({
|
|
Poll => { poll_id_fk => 'poll_id' },
|
|
});
|
|
|
|
$a->index({ a_pl => ['poll_id_fk']});
|
|
|
|
if (!$a->create and $GT::SQL::errcode eq 'TBLEXISTS') {
|
|
$a->set_defaults();
|
|
$a->save_schema();
|
|
}
|
|
|
|
# Create the PollVote table
|
|
my $v = $DB->creator ('PollVote');
|
|
$v->cols([
|
|
poll_vote_id => { type => 'INT', not_null => 1 },
|
|
poll_id_fk => { type => 'INT', not_null => 1 },
|
|
poll_vote_ip => { type => 'VARCHAR',size => '15', not_null => 1 },
|
|
poll_vote_time => { type => 'INT', default => '0', not_null => '1' }
|
|
]);
|
|
|
|
$v->pk('poll_vote_id');
|
|
$v->ai('poll_vote_id');
|
|
|
|
$v->fk ( {
|
|
'Poll' => {
|
|
'poll_id_fk' => 'poll_id'
|
|
},
|
|
});
|
|
|
|
$v->index({ v_p => ['poll_id_fk'] });
|
|
|
|
if (!$v->create and $GT::SQL::errcode eq 'TBLEXISTS') {
|
|
$v->set_defaults();
|
|
$v->save_schema();
|
|
}
|
|
|
|
}
|
|
|