Ticket #1980 (assigned バグ指摘)

Opened 8 years ago

Last modified 6 years ago

インストールシェルの2.12対応

Reported by: kim Owned by: kim
Priority: Milestone: EC-CUBE 2.13系 ユニットテストProject
Component: フロント Version: 2.12.2
Keywords: Cc:
修正済み: no

Description (last modified by shutta) (diff)

課題

  • eccube_install.sh の内容が2.4系の頃でメンテナンスされていない。
  • postgresql専用のためmysqlで利用できない
  • Jenkinsを利用する際に毎回インストールをし直せるようにしたい

対応

  • 2.12系のインストール処理に合わせて回収
  • Jenkinsの環境変数を利用するなどで、postgresql、mysqlともにDBを切り替えられるようにする
  • テスト利用を想定するもののため、AUTH_MAGICは固定とする

Change History

comment:1 Changed 8 years ago by kim

  • Status changed from new to assigned

comment:2 Changed 8 years ago by kim

r22129 で対応。 環境変数ではなく、引数でDBを切り替えるようしています。 まだ、前のコードが残っているところがおおく、不完全です。

comment:3 Changed 6 years ago by shutta

MyISAMでテーブルが作成されてしまう場合があったので、 r23547 にて、ストレージエンジンを指定するように修正しました。

インストール画面からインストールした場合は、
html/install.php 中にて、

            // MySQL 用の初期化
            // XXX SC_Query を使うようにすれば、この処理は不要となる
            if ($arrDsn['phptype'] === 'mysql') {
                $objDB->exec('SET SESSION storage_engine = InnoDB');
                $objDB->exec("SET SESSION sql_mode = 'ANSI'");
            }

のようになっているので、テーブルはInnoDBで作成されます。
なので、同様に、

SET SESSION storage_engine = InnoDB

を指定するようにしておきました。

また、InnoDBでないと、

CREATE TABLE dtb_index_list (
    table_name text NOT NULL,
    column_name text NOT NULL,
    recommend_flg smallint NOT NULL DEFAULT 0,
    recommend_comment text,
    PRIMARY KEY (table_name(255), column_name(255))
);

の部分が、

ERROR 1071 (42000) at line 1194: Specified key was too long; max key length is 1000 bytes

のようにエラーになるので、その対応も兼ねています。

comment:4 Changed 6 years ago by shutta

  • Description modified (diff)

comment:5 Changed 6 years ago by shutta

前述と同様に、MySQLの場合のシーケンス用テーブルのストレージエンジン指定も修正。(r23548)

Note: See TracTickets for help on using tickets.