Mercurial > epgrec.yaz
annotate upgrade_db.php @ 147:fadae5e39857
fix: スターチャンネル追加
author | epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp> |
---|---|
date | Mon, 22 Mar 2010 22:43:11 +0900 |
parents | 481e789605e3 |
children | 0283c2c75147 |
rev | line source |
---|---|
107 | 1 #!/usr/bin/php |
2 <?php | |
111
3bed74eca373
change: EPG取得並列化が可能かどうかを判定するように変更
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
107
diff
changeset
|
3 $script_path = dirname( __FILE__ ); |
3bed74eca373
change: EPG取得並列化が可能かどうかを判定するように変更
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
107
diff
changeset
|
4 chdir( $script_path ); |
3bed74eca373
change: EPG取得並列化が可能かどうかを判定するように変更
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
107
diff
changeset
|
5 include_once($script_path . '/config.php'); |
107 | 6 include_once(INSTALL_PATH . '/Settings.class.php' ); |
135
9c5e597ef6c6
mod: ログ機能を追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
111
diff
changeset
|
7 include_once(INSTALL_PATH . '/DBRecord.class.php' ); |
9c5e597ef6c6
mod: ログ機能を追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
111
diff
changeset
|
8 include_once(INSTALL_PATH . '/tableStruct.inc.php' ); |
107 | 9 |
10 // mysqli::multi_query篏障<т戎 | |
11 | |
12 function multi_query( $sqlstrs, $dbh ) { | |
13 $error = false; | |
14 | |
15 foreach( $sqlstrs as $sqlstr ) { | |
16 $res = mysql_query( $sqlstr ); | |
17 if( $res === FALSE ) { | |
18 echo "failed: ". $sqlstr . "\n"; | |
19 $error = true; | |
20 } | |
21 } | |
22 return $error; | |
23 } | |
24 | |
25 function column_exists( $tbl, $col, $dbh ) { | |
26 $sqlstr = "show fields from ".$tbl." where Field='".$col."'"; | |
27 $res = mysql_query( $sqlstr, $dbh ); | |
28 return mysql_num_rows($res); | |
29 } | |
30 | |
31 function index_exists( $tbl, $idx, $dbh ) { | |
32 $sqlstr = "show index from ".$tbl." where Key_name='".$idx."'"; | |
33 $res = mysql_query( $sqlstr, $dbh ); | |
34 return mysql_num_rows($res); | |
35 } | |
36 | |
37 | |
38 $settings = Settings::factory(); | |
39 $dbh = mysql_connect( $settings->db_host, $settings->db_user, $settings->db_pass ); | |
40 if( $dbh !== FALSE ) { | |
41 | |
42 $sqlstr = "use ".$settings->db_name; | |
43 mysql_query( $sqlstr ); | |
44 | |
45 $sqlstr = "set NAMES 'utf8'"; | |
46 mysql_query( $sqlstr ); | |
47 | |
48 // RESERVE_TBL | |
49 | |
50 $sqlstrs = array ( | |
51 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify channel_disc varchar(128) not null default 'none';", // channel disc | |
52 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify channel_id integer not null default '0';", // channel ID | |
53 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify program_id integer not null default '0';", // Program ID | |
54 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify type varchar(8) not null default 'GR';", // 腮ワGR/BS/CS鐚 | |
55 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify channel varchar(10) not null default '0';", // c潟 | |
56 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify title varchar(512) not null default 'none';", // 帥ゃ | |
57 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify description varchar(512) not null default 'none';", // 茯 text->varchar | |
58 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify category_id integer not null default '0';", // 眼ID | |
59 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify starttime datetime not null default '1970-01-01 00:00:00';", // 紮 | |
60 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify endtime datetime not null default '1970-01-01 00:00:00';", // 腟篋 | |
61 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify job integer not null default '0';", // job | |
62 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify path blob default null;", // 牙祉<ゃ | |
63 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify complete boolean not null default '0';", // 絎篋 | |
64 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify reserve_disc varchar(128) not null default 'none';", // 茘ョhash | |
65 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify autorec integer not null default '0';", // 若若ID | |
66 "alter table ".$settings->tbl_prefix.RESERVE_TBL." modify mode integer not null default '0';", //牙祉≪若 | |
67 ); | |
68 | |
142
481e789605e3
mod: EPGの更新と同時に予約情報を更新するように変更、ログビューアの追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
135
diff
changeset
|
69 if( index_exists( $settings->tbl_prefix.RESERVE_TBL, "dirty", $dbh) ) { |
481e789605e3
mod: EPGの更新と同時に予約情報を更新するように変更、ログビューアの追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
135
diff
changeset
|
70 echo "dirtyc若с絖篏障\n"; |
481e789605e3
mod: EPGの更新と同時に予約情報を更新するように変更、ログビューアの追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
135
diff
changeset
|
71 } |
481e789605e3
mod: EPGの更新と同時に予約情報を更新するように変更、ログビューアの追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
135
diff
changeset
|
72 else { |
481e789605e3
mod: EPGの更新と同時に予約情報を更新するように変更、ログビューアの追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
135
diff
changeset
|
73 array_push( $sqlstrs, "alter table ".$settings->tbl_prefix.RESERVE_TBL." add dirty boolean not null default '0';" ); |
481e789605e3
mod: EPGの更新と同時に予約情報を更新するように変更、ログビューアの追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
135
diff
changeset
|
74 } |
481e789605e3
mod: EPGの更新と同時に予約情報を更新するように変更、ログビューアの追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
135
diff
changeset
|
75 |
107 | 76 if( multi_query( $sqlstrs, $dbh ) ) { |
77 echo "篋膣若≪若紊掩\n"; | |
78 } | |
79 | |
80 // ゃ潟壕申 | |
81 $sqlstrs = array(); | |
82 if( index_exists( $settings->tbl_prefix.RESERVE_TBL, "reserve_ch_idx", $dbh ) ) { | |
83 echo "reserve_ch_idxс絖篏障\n"; | |
84 } | |
85 else { | |
86 array_push( $sqlstrs, "create index reserve_ch_idx on ".$settings->tbl_prefix.RESERVE_TBL." (channel_disc);" ); | |
87 } | |
88 if( index_exists( $settings->tbl_prefix.RESERVE_TBL, "reserve_st_idx", $dbh ) ) { | |
89 echo "reserve_st_idxс絖篏障\n"; | |
90 } | |
91 else { | |
92 array_push( $sqlstrs, "create index reserve_st_idx on ".$settings->tbl_prefix.RESERVE_TBL." (starttime);" ); | |
93 } | |
94 if( multi_query( $sqlstrs, $dbh ) ) { | |
95 echo "篋膣若ゃ潟鴻篏с障\n"; | |
96 } | |
97 | |
98 // PROGRAM_TBL | |
99 | |
100 $sqlstrs = array ( | |
101 "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify channel_disc varchar(128) not null default 'none';", // channel disc | |
102 "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify channel_id integer not null default '0';", // channel ID | |
103 "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify type varchar(8) not null default 'GR';", // 腮ワGR/BS/CS鐚 | |
104 "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify channel varchar(10) not null default '0';", // c潟 | |
105 "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify title varchar(512) not null default 'none';", // 帥ゃ | |
106 "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify description varchar(512) not null default 'none';", // 茯 text->varchar | |
107 "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify category_id integer not null default '0';", // 眼ID | |
108 "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify starttime datetime not null default '1970-01-01 00:00:00';", // 紮 | |
109 "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify endtime datetime not null default '1970-01-01 00:00:00';", // 腟篋 | |
110 "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify program_disc varchar(128) not null default 'none';", // 茘ョhash | |
111 "alter table ".$settings->tbl_prefix.PROGRAM_TBL." modify autorec boolean not null default '1';", // 牙紙合≦ | |
112 ); | |
113 | |
114 if( multi_query( $sqlstrs, $dbh ) ) { | |
115 echo "腟若≪若紊掩\n"; | |
116 } | |
117 | |
118 // ゃ潟壕申 | |
119 $sqlstrs = array(); | |
120 if( index_exists( $settings->tbl_prefix.PROGRAM_TBL , "program_ch_idx", $dbh ) ) { | |
121 echo "program_ch_idxс絖篏障\n"; | |
122 } | |
123 else { | |
124 array_push( $sqlstrs, "create index program_ch_idx on ".$settings->tbl_prefix.PROGRAM_TBL." (channel_disc);" ); | |
125 } | |
126 if( index_exists( $settings->tbl_prefix.PROGRAM_TBL , "program_st_idx", $dbh ) ) { | |
127 echo "program_st_idxс絖篏障\n"; | |
128 } | |
129 else { | |
130 array_push( $sqlstrs, "create index program_st_idx on ".$settings->tbl_prefix.PROGRAM_TBL." (starttime);" ); | |
131 } | |
132 if( multi_query( $sqlstrs, $dbh ) ) { | |
133 echo "腟若ゃ潟鴻篏с障\n"; | |
134 } | |
135 | |
136 // CHANNEL_TBL | |
137 | |
138 $sqlstrs = array( | |
139 "alter table ".$settings->tbl_prefix.CHANNEL_TBL." modify type varchar(8) not null default 'GR';", // 腮 | |
140 "alter table ".$settings->tbl_prefix.CHANNEL_TBL." modify channel varchar(10) not null default '0';", // channel | |
141 "alter table ".$settings->tbl_prefix.CHANNEL_TBL." modify name varchar(512) not null default 'none';", // 茵腓阪 | |
142 "alter table ".$settings->tbl_prefix.CHANNEL_TBL." modify channel_disc varchar(128) not null default 'none';", // 茘ョhash | |
143 ); | |
144 if( column_exists( $settings->tbl_prefix.CHANNEL_TBL, "sid", $dbh ) ) { | |
145 echo "sidc若絖т障\n"; | |
146 } | |
147 else { | |
148 array_push( $sqlstrs , "alter table ".$settings->tbl_prefix.CHANNEL_TBL." add sid varchar(64) not null default 'hd'" ); | |
149 } | |
150 if( column_exists( $settings->tbl_prefix.CHANNEL_TBL, "skip", $dbh ) ) { | |
151 echo "skipc若絖т障\n"; | |
152 } | |
153 else { | |
154 array_push( $sqlstrs , "alter table ".$settings->tbl_prefix.CHANNEL_TBL." add skip boolean not null default '0'" ); | |
155 } | |
156 if( multi_query( $sqlstrs, $dbh ) ) { | |
157 echo "c潟若≪若紊掩\n"; | |
158 } | |
159 | |
160 // CATEGORY_TBL | |
161 | |
162 $sqlstrs = array( | |
163 "alter table ".$settings->tbl_prefix.CATEGORY_TBL." modify name_jp varchar(512) not null default 'none';", // 茵腓阪 | |
164 "alter table ".$settings->tbl_prefix.CATEGORY_TBL." modify name_en varchar(512) not null default 'none';", // 筝 | |
165 "alter table ".$settings->tbl_prefix.CATEGORY_TBL." modify category_disc varchar(128) not null default 'none'", // 茘ョhash | |
166 ); | |
167 if( multi_query( $sqlstrs, $dbh ) ) { | |
168 echo "眼若≪若紊掩\n"; | |
169 } | |
170 | |
171 // KEYWORD_TBL | |
172 | |
173 $sqlstrs = array( | |
174 "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify keyword varchar(512) not null default '*';", // 茵腓阪 | |
175 "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify type varchar(8) not null default '*';", // 腮 | |
176 "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify channel_id integer not null default '0';", // channel ID | |
177 "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify category_id integer not null default '0';", // 眼ID | |
178 "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify use_regexp boolean not null default '0';", // 罩h頫憗篏睡1 | |
179 ); | |
180 if( column_exists( $settings->tbl_prefix.KEYWORD_TBL, "autorec_mode", $dbh ) ) { | |
181 echo "autorec_mode絖т障\n"; | |
182 } | |
183 else { | |
184 array_push( $sqlstrs, "alter table ".$settings->tbl_prefix.KEYWORD_TBL." add autorec_mode integer not null default '0';"); | |
185 } | |
186 if( column_exists( $settings->tbl_prefix.KEYWORD_TBL, "weekofday", $dbh ) ) { | |
187 echo "weekofday絖т障\n"; | |
142
481e789605e3
mod: EPGの更新と同時に予約情報を更新するように変更、ログビューアの追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
135
diff
changeset
|
188 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'" ); |
107 | 189 } |
190 else { | |
142
481e789605e3
mod: EPGの更新と同時に予約情報を更新するように変更、ログビューアの追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
135
diff
changeset
|
191 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'" ); |
107 | 192 } |
193 if( column_exists( $settings->tbl_prefix.KEYWORD_TBL, "prgtime", $dbh ) ) { | |
194 echo "prgtime絖т障\n"; | |
142
481e789605e3
mod: EPGの更新と同時に予約情報を更新するように変更、ログビューアの追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
135
diff
changeset
|
195 array_push( $sqlstrs, |
481e789605e3
mod: EPGの更新と同時に予約情報を更新するように変更、ログビューアの追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
135
diff
changeset
|
196 "alter table ".$settings->tbl_prefix.KEYWORD_TBL." modify prgtime enum ('0','1','2','3','4','5','6','7','8','9','10','11','12',". |
481e789605e3
mod: EPGの更新と同時に予約情報を更新するように変更、ログビューアの追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
135
diff
changeset
|
197 "'13','14','15','16','17','18','19','20','21','22','23','24') not null default '24'" ); |
107 | 198 } |
199 else { | |
200 array_push( $sqlstrs, | |
201 "alter table ".$settings->tbl_prefix.KEYWORD_TBL." add prgtime enum ('0','1','2','3','4','5','6','7','8','9','10','11','12',". | |
142
481e789605e3
mod: EPGの更新と同時に予約情報を更新するように変更、ログビューアの追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
135
diff
changeset
|
202 "'13','14','15','16','17','18','19','20','21','22','23','24') not null default '24'" ); |
107 | 203 } |
204 | |
205 if( multi_query( $sqlstrs, $dbh ) ) { | |
206 echo "若若若≪若紊掩\n"; | |
207 } | |
135
9c5e597ef6c6
mod: ログ機能を追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
111
diff
changeset
|
208 |
142
481e789605e3
mod: EPGの更新と同時に予約情報を更新するように変更、ログビューアの追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
135
diff
changeset
|
209 // 違若域鋎 |
135
9c5e597ef6c6
mod: ログ機能を追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
111
diff
changeset
|
210 |
9c5e597ef6c6
mod: ログ機能を追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
111
diff
changeset
|
211 try { |
9c5e597ef6c6
mod: ログ機能を追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
111
diff
changeset
|
212 $log = new DBRecord( LOG_TBL ); |
9c5e597ef6c6
mod: ログ機能を追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
111
diff
changeset
|
213 $log->createTable( LOG_STRUCT ); |
9c5e597ef6c6
mod: ログ機能を追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
111
diff
changeset
|
214 } |
9c5e597ef6c6
mod: ログ機能を追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
111
diff
changeset
|
215 catch( Exception $e ) { |
142
481e789605e3
mod: EPGの更新と同時に予約情報を更新するように変更、ログビューアの追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
135
diff
changeset
|
216 echo $e->getMessage(); |
135
9c5e597ef6c6
mod: ログ機能を追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
111
diff
changeset
|
217 echo "\n"; |
9c5e597ef6c6
mod: ログ機能を追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
111
diff
changeset
|
218 } |
9c5e597ef6c6
mod: ログ機能を追加
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
111
diff
changeset
|
219 |
107 | 220 } |
221 else | |
222 exit( "DB・膓紊掩\n" ); | |
111
3bed74eca373
change: EPG取得並列化が可能かどうかを判定するように変更
epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
parents:
107
diff
changeset
|
223 ?> |