Mercurial > epgrec.yaz
view upgrade_db.php @ 156:0283c2c75147
fix: バグ発見、修正
author | Sushi-k <epgrec@park.mda.or.jp> |
---|---|
date | Tue, 30 Mar 2010 11:21:16 +0900 |
parents | 481e789605e3 |
children |
line wrap: on
line source
#!/usr/bin/php <?php $script_path = dirname( __FILE__ ); chdir( $script_path ); include_once($script_path . '/config.php'); include_once(INSTALL_PATH . '/Settings.class.php' ); include_once(INSTALL_PATH . '/DBRecord.class.php' ); include_once(INSTALL_PATH . '/tableStruct.inc.php' ); // mysqli::multi_query篏障<т戎 function multi_query( $sqlstrs, $dbh ) { $error = false; foreach( $sqlstrs as $sqlstr ) { $res = mysql_query( $sqlstr ); if( $res === FALSE ) { echo "failed: ". $sqlstr . "\n"; $error = true; } } return $error; } function column_exists( $tbl, $col, $dbh ) { $sqlstr = "show fields from ".$tbl." where Field='".$col."'"; $res = mysql_query( $sqlstr, $dbh ); return mysql_num_rows($res); } function index_exists( $tbl, $idx, $dbh ) { $sqlstr = "show index from ".$tbl." where Key_name='".$idx."'"; $res = mysql_query( $sqlstr, $dbh ); return mysql_num_rows($res); } $settings = Settings::factory(); $dbh = mysql_connect( $settings->db_host, $settings->db_user, $settings->db_pass ); if( $dbh !== FALSE ) { $sqlstr = "use ".$settings->db_name; mysql_query( $sqlstr ); $sqlstr = "set NAMES 'utf8'"; mysql_query( $sqlstr ); // RESERVE_TBL $sqlstrs = array ( "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify channel_disc varchar(128) not null default 'none';", // channel disc "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify channel_id integer not null default '0';", // channel ID "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify program_id integer not null default '0';", // Program ID "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify type varchar(8) not null default 'GR';", // 腮ワGR/BS/CS鐚 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify channel varchar(10) not null default '0';", // c潟 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify title varchar(512) not null default 'none';", // 帥ゃ "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify description varchar(512) not null default 'none';", // 茯 text->varchar "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify category_id integer not null default '0';", // 眼ID "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify starttime datetime not null default '1970-01-01 00:00:00';", // 紮 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify endtime datetime not null default '1970-01-01 00:00:00';", // 腟篋 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify job integer not null default '0';", // job "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify path blob default null;", // 牙祉<ゃ "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify complete boolean not null default '0';", // 絎篋 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify reserve_disc varchar(128) not null default 'none';", // 茘ョhash "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify autorec integer not null default '0';", // 若若ID "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify mode integer not null default '0';", //牙祉≪若 ); if( column_exists( $settings->tbl_prefix.RESERVE_TBL, "dirty", $dbh) ) { echo "dirtyc若с絖篏障\n"; } else { array_push( $sqlstrs, "alter table ".$settings->tbl_prefix.RESERVE_TBL." add dirty boolean not null default '0';" ); } if( multi_query( $sqlstrs, $dbh ) ) { echo "篋膣若≪若紊掩\n"; } // ゃ潟壕申 $sqlstrs = array(); if( index_exists( $settings->tbl_prefix.RESERVE_TBL, "reserve_ch_idx", $dbh ) ) { echo "reserve_ch_idxс絖篏障\n"; } else { array_push( $sqlstrs, "create index reserve_ch_idx on ".$settings->tbl_prefix.RESERVE_TBL." (channel_disc);" ); } if( index_exists( $settings->tbl_prefix.RESERVE_TBL, "reserve_st_idx", $dbh ) ) { echo "reserve_st_idxс絖篏障\n"; } else { array_push( $sqlstrs, "create index reserve_st_idx on ".$settings->tbl_prefix.RESERVE_TBL." (starttime);" ); } if( multi_query( $sqlstrs, $dbh ) ) { echo "篋膣若ゃ潟鴻篏с障\n"; } // PROGRAM_TBL $sqlstrs = array ( "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify channel_disc varchar(128) not null default 'none';", // channel disc "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify channel_id integer not null default '0';", // channel ID "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify type varchar(8) not null default 'GR';", // 腮ワGR/BS/CS鐚 "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify channel varchar(10) not null default '0';", // c潟 "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify title varchar(512) not null default 'none';", // 帥ゃ "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify description varchar(512) not null default 'none';", // 茯 text->varchar "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify category_id integer not null default '0';", // 眼ID "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify starttime datetime not null default '1970-01-01 00:00:00';", // 紮 "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify endtime datetime not null default '1970-01-01 00:00:00';", // 腟篋 "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify program_disc varchar(128) not null default 'none';", // 茘ョhash "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify autorec boolean not null default '1';", // 牙紙合≦ ); if( multi_query( $sqlstrs, $dbh ) ) { echo "腟若≪若紊掩\n"; } // ゃ潟壕申 $sqlstrs = array(); if( index_exists( $settings->tbl_prefix.PROGRAM_TBL , "program_ch_idx", $dbh ) ) { echo "program_ch_idxс絖篏障\n"; } else { array_push( $sqlstrs, "create index program_ch_idx on ".$settings->tbl_prefix.PROGRAM_TBL." (channel_disc);" ); } if( index_exists( $settings->tbl_prefix.PROGRAM_TBL , "program_st_idx", $dbh ) ) { echo "program_st_idxс絖篏障\n"; } else { array_push( $sqlstrs, "create index program_st_idx on ".$settings->tbl_prefix.PROGRAM_TBL." (starttime);" ); } if( multi_query( $sqlstrs, $dbh ) ) { echo "腟若ゃ潟鴻篏с障\n"; } // CHANNEL_TBL $sqlstrs = array( "alter table ".$settings->tbl_prefix.CHANNEL_TBL." modify type varchar(8) not null default 'GR';", // 腮 "alter table ".$settings->tbl_prefix.CHANNEL_TBL." modify channel varchar(10) not null default '0';", // channel "alter table ".$settings->tbl_prefix.CHANNEL_TBL." modify name varchar(512) not null default 'none';", // 茵腓阪 "alter table ".$settings->tbl_prefix.CHANNEL_TBL." modify channel_disc varchar(128) not null default 'none';", // 茘ョhash ); if( column_exists( $settings->tbl_prefix.CHANNEL_TBL, "sid", $dbh ) ) { echo "sidc若絖т障\n"; } else { array_push( $sqlstrs , "alter table ".$settings->tbl_prefix.CHANNEL_TBL." add sid varchar(64) not null default 'hd'" ); } if( column_exists( $settings->tbl_prefix.CHANNEL_TBL, "skip", $dbh ) ) { echo "skipc若絖т障\n"; } else { array_push( $sqlstrs , "alter table ".$settings->tbl_prefix.CHANNEL_TBL." add skip boolean not null default '0'" ); } if( multi_query( $sqlstrs, $dbh ) ) { echo "c潟若≪若紊掩\n"; } // CATEGORY_TBL $sqlstrs = array( "alter table ".$settings->tbl_prefix.CATEGORY_TBL." modify name_jp varchar(512) not null default 'none';", // 茵腓阪 "alter table ".$settings->tbl_prefix.CATEGORY_TBL." modify name_en varchar(512) not null default 'none';", // 筝 "alter table ".$settings->tbl_prefix.CATEGORY_TBL." modify category_disc varchar(128) not null default 'none'", // 茘ョhash ); if( multi_query( $sqlstrs, $dbh ) ) { echo "眼若≪若紊掩\n"; } // KEYWORD_TBL $sqlstrs = array( "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify keyword varchar(512) not null default '*';", // 茵腓阪 "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify type varchar(8) not null default '*';", // 腮 "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify channel_id integer not null default '0';", // channel ID "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify category_id integer not null default '0';", // 眼ID "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify use_regexp boolean not null default '0';", // 罩h頫憗篏睡1 ); if( column_exists( $settings->tbl_prefix.KEYWORD_TBL, "autorec_mode", $dbh ) ) { echo "autorec_mode絖т障\n"; } else { array_push( $sqlstrs, "alter table ".$settings->tbl_prefix.KEYWORD_TBL." add autorec_mode integer not null default '0';"); } if( column_exists( $settings->tbl_prefix.KEYWORD_TBL, "weekofday", $dbh ) ) { echo "weekofday絖т障\n"; array_push( $sqlstrs, "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify weekofday enum ('0','1','2','3','4','5','6','7' ) not null default '7'" ); } else { array_push( $sqlstrs, "alter table ".$settings->tbl_prefix.KEYWORD_TBL." add weekofday enum ('0','1','2','3','4','5','6','7' ) not null default '7'" ); } if( column_exists( $settings->tbl_prefix.KEYWORD_TBL, "prgtime", $dbh ) ) { echo "prgtime絖т障\n"; array_push( $sqlstrs, "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify prgtime enum ('0','1','2','3','4','5','6','7','8','9','10','11','12',". "'13','14','15','16','17','18','19','20','21','22','23','24') not null default '24'" ); } else { array_push( $sqlstrs, "alter table ".$settings->tbl_prefix.KEYWORD_TBL." add prgtime enum ('0','1','2','3','4','5','6','7','8','9','10','11','12',". "'13','14','15','16','17','18','19','20','21','22','23','24') not null default '24'" ); } if( multi_query( $sqlstrs, $dbh ) ) { echo "若若若≪若紊掩\n"; } // 違若域鋎 try { $log = new DBRecord( LOG_TBL ); $log->createTable( LOG_STRUCT ); } catch( Exception $e ) { echo $e->getMessage(); echo "\n"; } } else exit( "DB・膓紊掩\n" ); ?>