Changeset 18791
- Timestamp:
- 2010/08/25 16:38:50 (13 years ago)
- bzr:base-revision:
- ohkouchi@loop-az.jp-20100824055828-2oy1qb3wcp85i76l
- bzr:committer:
- Kentaro Ohkouchi <ohkouchi@loop-az.jp>
- bzr:file-ids:
data/class/helper/SC_Helper_CSV.php 15535@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fhelper%2FSC_Helper_CSV.php
data/class/pages/admin/system/LC_Page_Admin_System_Bkup.php 16251@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fsystem%2FLC_Page_Admin_System_Bkup.php
html/install/index.php 16809@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Findex.php
html/install/sql/create_table_mysql.sql 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Fsql%2Fcreate_table_mysql.sql
html/install/sql/create_table_pgsql.sql 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Fsql%2Fcreate_table_pgsql.sql
html/install/sql/drop_table.sql 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Fsql%2Fdrop_table.sql
html/install/sql/insert_data.sql 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Fsql%2Finsert_data.sql- bzr:mapping-version:
- v4
- bzr:repository-uuid:
- 1e3b908f-19a9-db11-a64c-001125224ba8
- bzr:revision-id:
- ohkouchi@loop-az.jp-20100825073846-mzg8ka4y21o1nk6o
- bzr:revno:
- 2274
- bzr:revprop:branch-nick:
- branches/version-2_5-dev
- bzr:root:
- branches/version-2_5-dev
- bzr:text-parents:
data/class/helper/SC_Helper_CSV.php svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:18781
data/class/pages/admin/system/LC_Page_Admin_System_Bkup.php ohkouchi@loop-az.jp-20100819104758-beubop5hq0pwdqhx
html/install/sql/create_table_mysql.sql ohkouchi@loop-az.jp-20100819104758-beubop5hq0pwdqhx
html/install/sql/create_table_pgsql.sql ohkouchi@loop-az.jp-20100819104758-beubop5hq0pwdqhx
html/install/sql/drop_table.sql ohkouchi@loop-az.jp-20100818061055-lqje64n4qlsd2ke9
html/install/sql/insert_data.sql ohkouchi@loop-az.jp-20100819104758-beubop5hq0pwdqhx- bzr:timestamp:
- 2010-08-25 16:38:46.040999889 +0900
- bzr:user-agent:
- bzr2.1.2+bzr-svn1.0.2
- svn:original-date:
- 2010-08-25T07:38:46.041000Z
- Location:
- branches/version-2_5-dev
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/helper/SC_Helper_CSV.php
r18781 r18791 78 78 create_date, 79 79 update_date, 80 "convert"80 mb_convert_kana_option 81 81 FROM 82 82 dtb_csv … … 262 262 $objQuery->setOption($option); 263 263 264 $list_data = $objQuery->select($cols, $from, $where, $arrval, DB_FETCHMODE_ORDERED);264 $list_data = $objQuery->select($cols, $from, $where, $arrval, MDB2_FETCHMODE_ORDERED); 265 265 266 266 $csv = ''; -
branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Bkup.php
r18788 r18791 69 69 SC_Utils_Ex::sfIsSuccess($objSess); 70 70 71 // バックアップテーブルがなければ作成する72 $this->lfCreateBkupTable();73 74 71 if (!isset($_POST['mode'])) $_POST['mode'] = ""; 75 72 … … 207 204 // 実行時間を制限しない 208 205 set_time_limit(0); 209 206 210 207 $objQuery = new SC_Query(); 211 208 $csv_data = ""; … … 218 215 219 216 // 全テーブル取得 220 $arrTableList = $ this->lfGetTableList();217 $arrTableList = $objQuery->listTables(); 221 218 222 219 // 各テーブル情報を取得する … … 224 221 225 222 if (!($val == "dtb_bkup" || $val == "mtb_zip")) { 226 227 // 自動採番型の構成を取得する228 if (229 $csv_autoinc .= $this->lfGetAutoIncrement($val);230 223 231 224 // 全データを取得 … … 252 245 $csv_data .= $val . "\r\n"; 253 246 $csv_data .= $arrKyes . "\r\n"; 254 $csv_data .= $data; 255 $csv_data .= "\r\n"; 247 $csv_data .= $data . "\r\n"; 256 248 } 257 249 … … 260 252 } 261 253 } 254 255 // 自動採番型の構成を取得する 256 $csv_autoinc = $this->lfGetAutoIncrement(); 262 257 263 258 $csv_file = $bkup_dir . "bkup_data.csv"; … … 358 353 } 359 354 360 // 全テーブルリストを取得する 361 function lfGetTableList(){ 355 /** 356 * シーケンス一覧をCSV出力形式に変換する. 357 * 358 * シーケンス名,シーケンス値 の形式に出力する. 359 * 360 * @return string シーケンス一覧の文字列 361 */ 362 function lfGetAutoIncrement() { 362 363 $objQuery = new SC_Query(); 363 364 if(DB_TYPE == "pgsql"){ 365 $sql = "SELECT tablename FROM pg_tables WHERE tableowner = ? ORDER BY tablename ; "; 366 $arrRet = $objQuery->getAll($sql, array(DB_USER)); 367 $arrRet = SC_Utils_Ex::sfSwapArray($arrRet); 368 $arrRet = $arrRet['tablename']; 369 }else if(DB_TYPE == "mysql"){ 370 $sql = "SHOW TABLES;"; 371 $arrRet = $objQuery->getAll($sql); 372 $arrRet = SC_Utils_Ex::sfSwapArray($arrRet); 373 374 // キーを取得 375 $arrKey = array_keys($arrRet); 376 377 $arrRet = $arrRet[$arrKey[0]]; 378 } 379 return $arrRet; 380 } 381 382 // 自動採番型をCSV出力形式に変換する 383 // FIXME MDB2 のシーケンス関数を使用した実装へ要改修 384 function lfGetAutoIncrement($table_name){ 385 $arrColList = $this->lfGetColumnList($table_name); 386 $ret = ""; 387 388 if(DB_TYPE == "pgsql"){ 389 $match = 'nextval(\''; 390 }else if(DB_TYPE == "mysql"){ 391 $match = "auto_incr"; 392 } 393 394 foreach($arrColList['col_def'] as $key => $val){ 395 396 if (substr($val,0,9) == $match) { 397 $col = $arrColList['col_name'][$key]; 398 $autoVal = $this->lfGetAutoIncrementVal($table_name, $col); 399 $ret .= "$table_name,$col,$autoVal\n"; 400 } 401 } 402 403 return $ret; 404 } 405 406 // テーブル構成を取得する 407 Function LfgetColumnlist($table_name){ 408 $objQuery = new SC_Query(); 409 410 if(DB_TYPE == "pgsql"){ 411 $sql = "SELECT 412 a.attname, t.typname, a.attnotnull, d.adsrc as defval, a.atttypmod, a.attnum as fldnum, e.description 413 FROM 414 pg_class c, 415 pg_type t, 416 pg_attribute a left join pg_attrdef d on (a.attrelid=d.adrelid and a.attnum=d.adnum) 417 left join pg_description e on (a.attrelid=e.objoid and a.attnum=e.objsubid) 418 WHERE (c.relname=?) AND (c.oid=a.attrelid) AND (a.atttypid=t.oid) AND a.attnum > 0 419 ORDER BY fldnum"; 420 $arrColList = $objQuery->getAll($sql, array($table_name)); 421 $arrColList = SC_Utils_Ex::sfSwapArray($arrColList); 422 423 $arrRet['col_def'] = $arrColList['defval']; 424 $arrRet['col_name'] = $arrColList['attname']; 425 }else if(DB_TYPE == "mysql"){ 426 $sql = "SHOW COLUMNS FROM $table_name"; 427 $arrColList = $objQuery->getAll($sql); 428 $arrColList = SC_Utils_Ex::sfSwapArray($arrColList); 429 430 $arrRet['col_def'] = $arrColList['Extra']; 431 $arrRet['col_name'] = $arrColList['Field']; 432 } 433 return $arrRet; 434 } 435 436 // 自動採番型の値を取得する 437 function lfGetAutoIncrementVal($table_name , $colname = ""){ 438 $objQuery = new SC_Query(); 439 $ret = ""; 440 441 if(DB_TYPE == "pgsql"){ 442 $ret = $objQuery->nextval($table_name, $colname) - 1; 443 }else if(DB_TYPE == "mysql"){ 444 $sql = "SHOW TABLE STATUS LIKE ?"; 445 $arrData = $objQuery->getAll($sql, array($table_name)); 446 $ret = $arrData[0]['Auto_increment']; 364 $arrSequences = $objQuery->listSequences(); 365 $result = ""; 366 367 foreach($arrSequences as $val){ 368 $seq = $objQuery->currVal($val); 369 370 $ret .= $val . ","; 371 $ret .= is_null($seq) ? "0" : $seq; 372 $ret .= "\r\n"; 447 373 } 448 374 return $ret; … … 473 399 // 実行時間を制限しない 474 400 set_time_limit(0); 475 401 476 402 $objQuery = new SC_Query("", false); 477 403 $csv_data = ""; … … 546 472 547 473 // CSVファイルからインサート実行 548 function lfExeInsertSQL( $objQuery, $csv){474 function lfExeInsertSQL(&$objQuery, $csv){ 549 475 550 476 $sql = ""; … … 604 530 605 531 // エラーがあれば終了 606 if ( $err->message != ""){532 if (PEAR::isError($err)){ 607 533 SC_Utils_Ex::sfErrorHeader(">> " . $objQuery->getlastquery(false)); 608 534 return false; … … 625 551 626 552 // 自動採番をセット 627 function lfSetAutoInc( $objQuery, $csv){553 function lfSetAutoInc(&$objQuery, $csv){ 628 554 // csvファイルからデータの取得 629 555 $arrCsvData = file($csv); 630 556 631 foreach($arrCsvData as $ key => $val){557 foreach($arrCsvData as $val){ 632 558 $arrData = split(",", trim($val)); 633 559 634 if ($arrData[2] == 0) $arrData[2] = 1; 635 $objQuery->setval($arrData[0] . "_" . $arrData[1], $arrData[2]); 560 $objQuery->setval($arrData[0], $arrData[1]); 636 561 } 637 562 } 638 563 639 564 // DBを全てクリアする 640 function lfDeleteAll( $objQuery){565 function lfDeleteAll(&$objQuery){ 641 566 $ret = true; 642 567 643 $arrTableList = $ this->lfGetTableList();644 645 foreach($arrTableList as $ key => $val){568 $arrTableList = $objQuery->listTables(); 569 570 foreach($arrTableList as $val){ 646 571 // バックアップテーブルは削除しない 647 572 if ($val != "dtb_bkup") { 648 $trun_sql = "DELETE FROM $val ;";573 $trun_sql = "DELETE FROM $val"; 649 574 $ret = $objQuery->query($trun_sql); 650 651 if (!$ret) return $ret; 652 } 653 } 654 655 return $ret; 656 } 657 658 // バックアップテーブルを作成する 659 function lfCreateBkupTable(){ 660 $objQuery = new SC_Query(); 661 662 // テーブルの存在チェック 663 $arrTableList = $this->lfGetTableList(); 664 665 if(!in_array("dtb_bkup", $arrTableList)){ 666 // 存在していなければ作成 667 // MySQL でプライマリキーを設定するため bkup_name は varchar(50) とした。 668 $cre_sql = " 669 create table dtb_bkup 670 ( 671 bkup_name varchar(50), 672 bkup_memo text, 673 create_date timestamp, 674 PRIMARY KEY (bkup_name) 675 ); 676 "; 677 678 $objQuery->query($cre_sql); 679 } 575 if (PEAR::isError($ret)) return false; 576 } 577 } 578 579 return true; 680 580 } 681 581 } -
branches/version-2_5-dev/html/install/index.php
r18790 r18791 276 276 $objQuery->query($sql, array($login_id)); 277 277 278 $sql = "INSERT INTO dtb_member ( name, login_id, password, creator_id, authority, work, del_flg, rank, create_date, update_date)279 VALUES ( '管理者',?,?,0,0,1,0,1, now(), now());";280 281 $objQuery->query($sql, array($ login_id, $login_pass));278 $sql = "INSERT INTO dtb_member (member_id, name, login_id, password, creator_id, authority, work, del_flg, rank, create_date, update_date) 279 VALUES (?,'管理者',?,?,0,0,1,0,1, now(), now());"; 280 $member_id = $objQuery->nextVal("dtb_member_member_id"); 281 $objQuery->query($sql, array($member_id, $login_id, $login_pass)); 282 282 283 283 $GLOBAL_ERR = ""; -
branches/version-2_5-dev/html/install/sql/create_table_mysql.sql
r18788 r18791 841 841 create_date datetime NOT NULL, 842 842 update_date datetime NOT NULL, 843 `convert`text,843 mb_convert_kana_option text, 844 844 PRIMARY KEY (no) 845 845 ) TYPE=InnoDB; … … 1232 1232 update_date datetime NOT NULL, 1233 1233 PRIMARY KEY (trackback_id) 1234 ) TYPE=InnoDB; 1235 1236 CREATE TABLE dtb_bkup ( 1237 bkup_name varchar(50), 1238 bkup_memo text, 1239 create_date datetime, 1240 PRIMARY KEY (bkup_name) 1234 1241 ) TYPE=InnoDB; 1235 1242 -
branches/version-2_5-dev/html/install/sql/create_table_pgsql.sql
r18788 r18791 842 842 create_date timestamp NOT NULL DEFAULT now(), 843 843 update_date timestamp NOT NULL DEFAULT now(), 844 converttext,844 mb_convert_kana_option text, 845 845 PRIMARY KEY (no) 846 846 ); … … 1230 1230 ); 1231 1231 1232 CREATE TABLE dtb_bkup ( 1233 bkup_name varchar(50), 1234 bkup_memo text, 1235 create_date timestamp, 1236 PRIMARY KEY (bkup_name) 1237 ); 1238 1232 1239 CREATE INDEX dtb_customer_mobile_phone_id_key ON dtb_customer (mobile_phone_id); 1233 1240 CREATE INDEX dtb_products_class_product_id_key ON dtb_products_class(product_id); -
branches/version-2_5-dev/html/install/sql/drop_table.sql
r18787 r18791 94 94 DROP TABLE dtb_site_control; 95 95 DROP TABLE dtb_trackback; 96 96 DROP TABLE dtb_bkup; -
branches/version-2_5-dev/html/install/sql/insert_data.sql
r18788 r18791 371 371 INSERT INTO dtb_mailtemplate (template_id, subject, header, footer, creator_id, del_flg, create_date, update_date) VALUES (5, 'お問い合わせを受け付けました', '', '', 0, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP); 372 372 373 INSERT INTO dtb_member (member_id, name, department, login_id, password, authority, rank, work, del_flg, creator_id, update_date, create_date, login_date) VALUES (1, 'dummy', NULL, 'dummy', ' ', 0, 0, 1, 1, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL); 374 INSERT INTO dtb_member (member_id, name, department, login_id, password, authority, rank, work, del_flg, creator_id, update_date, create_date, login_date) VALUES (2, '管理者', NULL, 'admin', '2c19f4a742398150cecc80b3e76b673a35b8c19c', 0, 1, 1, 0, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL); 373 INSERT INTO dtb_member (member_id, name, department, login_id, password, authority, rank, work, del_flg, creator_id, update_date, create_date, login_date) VALUES (1, 'dummy', NULL, 'dummy', 'dummy', 0, 0, 1, 1, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL); 375 374 376 375 INSERT INTO dtb_module (module_id, module_code, module_name, sub_data, auto_update_flg, del_flg, create_date, update_date) VALUES (0, '0', 'patch', NULL, 0, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP); … … 382 381 INSERT INTO dtb_pagelayout (page_id, page_name, url, php_dir, tpl_dir, filename, header_chk, footer_chk, edit_flg, author, description, keyword, update_url, create_date, update_date) VALUES (3, '商品詳細ページ', 'products/detail.php', ' ', 'user_data/templates/', 'detail', 1, 1, 2, NULL, NULL, NULL, NULL, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP); 383 382 INSERT INTO dtb_pagelayout (page_id, page_name, url, php_dir, tpl_dir, filename, header_chk, footer_chk, edit_flg, author, description, keyword, update_url, create_date, update_date) VALUES (4, 'MYページ', 'mypage/index.php', ' ', '', '', 1, 1, 2, NULL, NULL, NULL, NULL, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP); 384 INSERT INTO dtb_pagelayout (page_id, page_name, url, php_dir, tpl_dir, filename, header_chk, footer_chk, edit_flg, author, description, keyword, update_url, create_date, update_date) VALUES (0, 'プレビューデータ', ' 383 INSERT INTO dtb_pagelayout (page_id, page_name, url, php_dir, tpl_dir, filename, header_chk, footer_chk, edit_flg, author, description, keyword, update_url, create_date, update_date) VALUES (0, 'プレビューデータ', 'preview', NULL, NULL, NULL, 1, 1, 1, NULL, NULL, NULL, NULL, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP); 385 384 386 385 INSERT INTO dtb_payment (payment_id, payment_method, charge, rule, deliv_id, rank, note, fix, status, del_flg, creator_id, create_date, update_date, payment_image, upper_rule, charge_flg, rule_min, upper_rule_max, module_id, module_path, memo01, memo02, memo03, memo04, memo05, memo06, memo07, memo08, memo09, memo10) VALUES (1, 'クレジット', 0, NULL, 1, 5, NULL, 2, 1, 0, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
Note: See TracChangeset
for help on using the changeset viewer.