a stray sheep

お仕事周りの雑記帳

TestLink 1.9.15 to 1.9.17と、ERROR 1062 (23000) at line 67: Duplicate entry '8-30' for key 'PRIMARY'

やること

  • TestLink 1.9.15 を 1.9.17 にアップグレードする
  • その際に出たERROR 1062に対応する 

★注意★この記事で示す手順が正しいかどうかはわからない。とりあえず、エラーに対して、それとなく対応を行ってアップデートできたっぽいというだけ。

作業手順

TestLink 1.9.15のインストール

構築は、以下の記事の通り。 belial6.hateblo.jp

TestLink 1.9.17のインストール

// Apacheを停止して、既存のフォルダを退避する
sudo systemctl stop httpd
sudo mv /var/www/html/testlink /var/www/html/testlink.bak

// testlink 1.9.17のアーカイブを解凍し、配置・設定する
sudo tar zxvf testlink-1.9.17.tar.gz
sudo mv testlink-1.9.17 /var/www/html/testlink
sudo chmod -R 755 /var/www/html/testlink/gui/templates_c
sudo chown -R apache:apache /var/www/html/testlink
sudo systemctl start httpd

この後、以下のURLにアクセスすると、TestLinkの初期設定画面が表示される。アップデートする場合には、DBを更新する必要があると言われる(書かれている)ので、READMEに従ってDBの更新を行う。

http://localhost:10082/testlink/

DBスキーマの更新

// 1.9.151.9.16
cd /var/www/html/testlink/install/sql/alter_tables/1.9.16/mysql/DB.1.9.16/step1
sudo mysql -u root -p testlink < db_schema_update.sql

cd /var/www/html/testlink/install/sql/alter_tables/1.9.16/mysql/DB.1.9.16/stepZ
sudo mysql -u root -p testlink < z_final_step.sql

// 1.9.161.9.17
cd /var/www/html/testlink/install/sql/alter_tables/1.9.17/mysql/DB.1.9.17/step1
sudo mysql -u root -p testlink < db_schema_update.sql
Enter password:
ERROR 1062 (23000) at line 67: Duplicate entry '8-30' for key 'PRIMARY' ★エラー発生

// 上記のエラーが出た場合は、db_schema_update.sql ファイルを開いて、エラー箇所以降のSQL文を手動で流す。
// そこだけ別ファイルに出して、実行するのでもよい。
// 以下は、DBアクセス後、コピペして流した。

sudo mysql -u root -p testlink
MariaDB [testlink]> INSERT INTO /*prefix*/role_rights (role_id,right_id) VALUES (8,50);
MariaDB [testlink]> INSERT INTO /*prefix*/role_rights (role_id,right_id) VALUES (8,51);
MariaDB [testlink]> INSERT INTO /*prefix*/role_rights (role_id,right_id) VALUES (8,52);
MariaDB [testlink]> INSERT INTO /*prefix*/role_rights (role_id,right_id) VALUES (8,53);
MariaDB [testlink]> INSERT INTO /*prefix*/role_rights (role_id,right_id) VALUES (8,54);
MariaDB [testlink]> ALTER TABLE /*prefix*/testprojects ADD COLUMN code_tracker_enabled tinyint(1) NOT NULL default '0';
MariaDB [testlink]> ALTER TABLE /*prefix*/users ADD COLUMN creation_ts timestamp NOT NULL DEFAULT now();
MariaDB [testlink]> ALTER TABLE /*prefix*/users ADD COLUMN expiration_date date DEFAULT NULL;
MariaDB [testlink]> \q

cd /var/www/html/testlink/install/sql/alter_tables/1.9.17/mysql/DB.1.9.17/stepZ
sudo mysql -u root -p testlink < f_final_step.sql

再度、以下のURLにアクセスして初期設定を行う。初期設定後、ログイン画面にアクセスでき、admin/adminでログインできればOK。

http://localhost:10082/testlink/

以上