discourse-legacysite-perl/site/forum.slowtwitch.com/cgi-bin/poll/admin/sql.cgi
2024-06-17 21:49:12 +10:00

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();
}
}