Switch to composer mode in running instance

Viewed 2222

How can I switch an existing project easily to composer? This project is updated from 6.1 to 8.7 now and should run in composer. A fresh composer setup is not a problem. For the last project I created a new host, installed TYPO3 via composer, installed the extensions via composer and migrated the db, fileadmin and uploads. Is there an easier way?

4 Answers

Migrating TYPO3 from Classic Mode to Composer Mode requires at least the following steps:

  1. Write down the current version of TYPO3 and all extensions
  2. Remove all embedded TYPO3 and extension code incl. Git submodules
  3. Add a Composer manifest
  4. Add the Composer vendor-dir (and bin-dir if custom) to your .gitignore
  5. Require TYPO3 and all extensions with the versions and --prefer-lowest, e.g.

    composer require typo3/cms:^8.7.7 --prefer-lowest
    

    This ensures that you don't accidentally perform updates before completing the switch.

Since no further changes to user files or database data is required you will be running TYPO3 in Composer Mode now.

Afterward you will most likely also need to adapt your deployment workflow to ensure at least one composer install is executed after deploying a new version.

There is no real other way, at least no automatic way, as you also upgrade maybe to newer versions or sometimes to the exact same version

I have tried to generate a composer.json file from the PackageState.php successfully for a docker instance.

I loop through the PackageState.php, then parse each extension for its version and generate a composer.json from this aggregated information.

This is my script: https://github.com/geri777/typo3-composerize

Related