************************************************************
* さくらのレンタルサーバが変わるため、PHP7.3対応をすることになった
* PHP7.3が対応しているnextcloud14へ
* ①【PHP7.2】owncloudのバージョンを更新(10.2.0.5)に更新
* ②【PHP5.6】nextcloud12.0.13に更新
* ③【PHP5.6】nextcloud13.0.12に更新
* ④【PHP7.3】nextcloud14.0.12に更新
*
************************************************************
# ownCloud最新化は省略(10.2.0.5)にした
# nextcloudの取得(いきなり最新版は無理みたいなので、ver12を取得)
% wget https://download.nextcloud.com/server/releases/nextcloud-12.0.13.tar.bz2
# 管理コンソールからPHPのバージョンを5.6に変更しておく
# バックアップ(移動)
% mv owncloud-scripts owncloud-scripts.bk
# 解凍(一時解凍。好きな場所へ・・・・)
% tar -C ./next/ -xvf nextcloud-12.0.13.tar.bz2
# 解凍したファイルを移動
% cp -r ./next/nextcloud ./owncloud-scripts
# configファイルのコピー
% cp ./owncloud-scripts.bk/config/config.php ./owncloud-scripts/config/
# version.phpのowncloudに「10.2.0」を追加
# upgrade
% php ./owncloud-scripts/occ upgrade
% php ./owncloud-scripts/occ maintenance:mode --off
# ログインしてみて確認
# upgrade 時にエラーが出たとき・・・・
An exception occurred while executing 'DROP TABLE oc_accounts':
1217 Cannot delete or update a parent row: a foreign key constraint fails
#mysqlにて
SELECT
TABLE_NAME
, COLUMN_NAME
, CONSTRAINT_NAME
, REFERENCED_TABLE_NAME
, REFERENCED_COLUMN_NAME
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_NAME = 'oc_accounts';
# 結果
+---------------------+------------------+---------------------+-----------------------+------------------------+
| table_name | column_name | constraint_name | referenced_table_name | referenced_column_name |
+---------------------+------------------+---------------------+-----------------------+------------------------+
| oc_persistent_locks | owner_account_id | FK_F0C3D55BC901C6FF | oc_accounts | id |
+---------------------+------------------+---------------------+-----------------------+------------------------+
#制約を消す
alter table oc_persistent_locks drop foreign key FK_F0C3D55BC901C6FF, drop owner_account_id;
#他に「oc_filecache」でエラーが出るかも
#同じように・・・
SELECT
TABLE_NAME
, COLUMN_NAME
, CONSTRAINT_NAME
, REFERENCED_TABLE_NAME
, REFERENCED_COLUMN_NAME
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_NAME = 'oc_filecache';
alter table oc_persistent_locks drop foreign key FK_F0C3D55B93CB796C, drop file_id;
#nextcloudに移行ができれば、PHPのバージョンに気をつけつつアップグレードをしていく
#13から14にアップグレードする場合は「occ upgrade」以外に必要なコマンドがあるため気をつける
php occ db:add-missing-indice
php occ db:convert-filecache-bigint
php occ upgrade