owncloud10から nextcloud14へ

************************************************************
* さくらのレンタルサーバが変わるため、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



コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください