1 はじめに
お知らせが来てたから core をアップデートしようと思ったら、いつもの次のコマンドでアップデートできなかった。
composer update "drupal/core-*" --with-all-dependencies
既に最新です、とのメッセージだったから???となりながら composer.json をみたところ、core は 11.1.8 で固定されていた。^11.2 に置換すれば大丈夫かと思いきやそんなに単純ではなく、依存関係やら何ならでアップデートできなかった。
これじゃ埒が明かないから、最終的に Drupal CMS 1.2.0(Drupal Core 11.2.0)に対応した composer.json を用意して対応することにした。
2 自分が採用したアップデート手順
- 何はともあれサイトをメンテナンスモードにする。
- web/sites/default を一時的に sudo chmod 775 で書き込み可とする。
- composer.json を置き換える。今回は、新たに Drupal CMS 1.2.0 のサイトを作って、そのファイルをコピーした。
本来の手順を知らないから非常手段ということで。 - Package Manager を使用するためweb/sites/default/settings.php に次を追加する。
$settings['testing_package_manager'] = TRUE; - composer update "drupal/*" --with-all-dependencies を実行してcomposer.lock を更新する。
- 標準構成のモジュールに対して、別途モジュールを追加している場合は composer require drupal/*** を実行しておく
- 管理者アカウントでログインしている状態で jisaba.life/update.php を開いてデータベースを更新する。
終わったらメンテナンスモードもオフになる。 - web/sites/default を sudo chmod 555 で元に戻す。
こんな感じで無事アップデートできた。
3 おわりに
モジュールや core など Drupal CMS の更新関係は試験的なものとして割り切って、全て composer を使用するのもアリ。
このあたりは WordPress のほうがお手軽。
アップデー用の composer.json を取得するには git を使用すればいいのかな?
あとで調べてみよう。