--- db/prgsrc/mkdb.pl 2000/10/16 23:20:49 1.1 +++ db/prgsrc/mkdb.pl 2009/12/12 16:55:21 1.24 @@ -4,6 +4,11 @@ mkdb.pl - a script for creation of new database. +=head1 SYNOPSIS + +mkdb.pl + + =head1 DESCRIPTION This script will create tables Questions and Tournaments @@ -18,7 +23,7 @@ The database, user and password are hard Dmitry Rubinstein -=head1 $Id: mkdb.pl,v 1.1 2000/10/16 23:20:49 boris Exp $ +=head1 $Id: mkdb.pl,v 1.24 2009/12/12 16:55:21 roma7 Exp $ =cut @@ -32,7 +37,7 @@ sub CheckTable my ($TabName) = @_; my ($ans); - if (scalar(grep(/^$TabName$/, @tbl_list))) { + if (scalar(grep(/^$TabName$/i, @tbl_list))) { print "Table $TabName exists. Do you want to delete it? "; $ans = ; if ($ans =~ /[yY]/) { @@ -51,8 +56,8 @@ print "Before connecting to the DB\n"; $dbh = DBI->connect("DBI:mysql:chgk", "piataev", "") or die "Can't connect to DB chgk\n" . $dbh->errstr; print "Connected successfully\n"; - - @tbl_list = $dbh->func( '_ListTables' ); +if ($dbh->get_info( 18 )=~/^(5|(4.1))/) {$dbh->do("SET NAMES 'koi8r'");} + @tbl_list = $dbh->tables(); &CheckTable("Questions"); $dbh->do("CREATE TABLE Questions ( @@ -60,17 +65,22 @@ print "Connected successfully\n"; KEY QuestionIdKey (QuestionId), ParentId SMALLINT UNSIGNED NOT NULL, KEY ParentIdKey (ParentId), - Number TINYINT UNSIGNED NOT NULL, + Number SMALLINT UNSIGNED NOT NULL, KEY NumberKey (Number), - # Currently there are 2 types of questions: 'Chto? Gde? Kogda?' - # and 'Brain ring'. - Type ENUM('þ','â') NOT NULL, + `Type` CHAR(5) NOT NULL DEFAULT 'þ', + KEY TypeKey (Type), Question TEXT, - Answer TINYTEXT, - Authors TINYTEXT, - Sources TINYTEXT, - Comments TEXT - )") + Answer TEXT, + PassCriteria TEXT, + Authors TEXT, + Sources TEXT, + Comments TEXT, + Rating TEXT, + Topic TEXT, + ProcessedBySearch INT + ) TYPE=MyISAM" + . (($dbh->get_info( 18 )=~/^(5|(4.1))/)?' DEFAULT CHARSET=koi8r':'') +) or die "Can't create Questions table: $!\n"; &CheckTable("Tournaments"); @@ -81,16 +91,23 @@ print "Connected successfully\n"; ParentId INT UNSIGNED NOT NULL, KEY ParentIdKey (ParentId), Title TINYTEXT NOT NULL, + Number SMALLINT UNSIGNED, QuestionsNum INT UNSIGNED DEFAULT 0, - Type ENUM('ç','ô','þ'), - MetaId INT UNSIGNED, + Type ENUM('ç','ô','þ'), Copyright TEXT, Info TEXT, URL TINYTEXT, FileName CHAR(25), + Editors TEXT, + EnteredBy TEXT, PlayedAt DATE, + PlayedAt2 DATE, + KandId INT, CreatedAt DATE NOT NULL - )") + ) TYPE=MyISAM" + . (($dbh->get_info( 18 )=~/^(5|(4.1))/)?' DEFAULT CHARSET=koi8r':'') + +) or die "Can't create Tournaments table: $!\n"; # CREATE INDEX ParentInd ON Tournaments (ParentId)