CONTENTS
Drupalのモジュールをダウングレードする
こんにちは。
ぴころじーの竹川です。
今回は、Drupalのモジュールをダウングレード(バージョンダウン)してみる、というお話です。
本番環境では、ダウングレードをするということはまず起きませんが、開発環境においては稀に起きることがあります。
本番環境でダウングレードしない理由
本番環境では、先にも書いた通り、ダウングレードをすることはまずありません。
- お客さまや関係者との合意の上で、そのバージョンを使っている。
- さまざまな検証を行った上で、問題ないと判断しているため、そのバージョンを使っている。
といったことが、ダウングレードをする必要がない理由です。もちろん、他にもあると思います。
開発環境でダウングレードをする理由
開発環境では、先にも書いた通り、稀にダウングレードすることがあります。
- 予期せぬ不具合に遭遇した。
- Drupal Coreとの依存関係によるもの。
- 関係者間の調整によるもの。
など、他にも理由はあると思いますが、このようなところでしょう。開発環境ですので、ある程度試行錯誤は効きます。もちろん、バージョン変更による仕様変更等が発生するかもしれませんが・・・。
ダウングレードを実施する前に
では、ダウングレードの計画をします。
どのバージョンにするか。いつ行うか。など、調整し、実施します。そのバージョンが、Drupal Coreの要件を満たしているかも確認します。要件を満たしていない場合、次のようなエラーが出てしまいますので、注意します。
$ composer require drupal/eve:^2
./composer.json has been updated
Running composer update drupal/eve
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires drupal/eve, it could not be found in any version, there may be a typo in the package name.
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.
- It's a private package and you forgot to add a custom repository to find it
Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
Installation failed, reverting ./composer.json and ./composer.lock to their original content.
また、zipファイルをダウンロードしたものからDrupalサイトを構築している場合、モジュールのダウングレードは厄介です。そう言った面からも、インストールする際はcomposerを利用することをお勧めします。(Drupal公式ではcomposerによるインストールを推奨しています。)
ダウングレードを実施する
Drupalをcomposerでインストールしている場合は、ダウングレードを簡単に行うことができます。Drupal公式でどのバージョンにするかを確認した上で、composerを実行します。
まず、現在のバージョンの確認です。(今回はサンプルとしてevaモジュールを対象にします。)
$ composer show | grep drupal/eva
drupal/eva 3.0.0 Attach a view to an entity
バージョン3.0.0(執筆時点の最新バージョン)がインストールされています。
今回は、バージョン2.1.0にダウングレードします。
$ composer require drupal/eva:^2.1.0
./composer.json has been updated
Running composer update drupal/eva
Loading composer repositories with package information
Updating dependencies
Lock file operations: 0 installs, 1 update, 0 removals
- Downgrading drupal/eva (3.0.0 => 2.1.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 1 update, 0 removals
- Downloading drupal/eva (2.1.0)
- Downgrading drupal/eva (3.0.0 => 2.1.0): Extracting archive
Package doctrine/reflection is abandoned, you should avoid using it. Use roave/better-reflection instead.
Package symfony/debug is abandoned, you should avoid using it. Use symfony/error-handler instead.
Generating autoload files
47 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
バージョンを確認します。
$ composer show | grep drupal/eva
drupal/eva 2.1.0 Attach a view to an entity
と言った具合に、composerを使えばコマンド一発でダウングレードできます。
関係者間の調整なしにダウングレードを行わないようにしましょう!それでは、今日も良きDrupalライフを!