Upgrading from TYPO3 9 to 10 is actually not difficult. The system itself can usually be updated without any problems.
However, one problem could be extensions that are not (yet) compatible with TYPO3 10. There are also a few changes that need to be taken into account, for example when using your own sitepackage (an extension that is used to output the frontend).
In the following videos, we show how to upgrade to TYPO3 10 using our sample project as an example.
But first things first: these videos cannot be a universal guide for every TYPO3 project. This is because each project may have its own individual "pitfalls" that need to be taken into account.
Nevertheless, the steps are always the same in principle.
In the videos, a "classic" TYPO3 installation based on symlinks is used. The upgrade is carried out in a cloud hosting package, but of course the whole thing also works in classic hosting. We point out significant differences in the videos.
Copy TYPO3 project
TYPO3 upgrades should never be carried out on the live website. Even if an upgrade seems quick and easy, unforeseen complications can always arise. To ensure that visitors to the website do not notice anything, such an upgrade should always be carried out on a copy of the website. This allows you to upgrade the copy in peace while the original site continues to run unaffected.
Once the upgrade has been completed, the updated copy can be switched to the live site. This switchover usually only takes a few minutes. Ideally, visitors to the website will not notice the whole process at all.
Of course, it is important to bear in mind that if content is changed on the original site during the upgrade, this content must be added to the copy. Subsequent synchronization may only be possible with great effort.
The procedure described on this page is aimed at users who want to update their TYPO3 system directly on the server.
Of course, there are other things to consider, especially for larger installations, even if you are working with a deployment such as TYPO3 Surf or Deployer. However, we do not consider this use case in these instructions.
Copy TYPO3 project Part 2: Database
In the second step, a copy of the database must be created.
Create an export file (dump) of the database:
mysqldump --opt -h host -u username -p database name > database.sql
Please replace the host entry with the database server as stored in your customer menu.
The easiest way to find the other access data is in the typo3conf/LocalConfiguration.php file.
Then create a new database via the customer menu and import the dump into this database.
mysql -h host -u username -p database name < database.sql
Finally, the new database access data must be entered in the typo3conf/LocalConfiguration.php file of the copy.
All steps are shown in detail in the following video.
Link (sub)domain to the copy
A domain or subdomain must now be linked to the project directory on the server so that the copy of the project can be accessed in the web browser.
In Cloud Hosting, we recommend using a subdomain, as the PHP version can be set independently of the main domain and a free Lets's Encrypt SSL certificate can be created for the subdomain if required.
In Classic Hosting, if you want or need to use different PHP versions, you can also use a free *.webseiten.cc domain.
After the (sub)domain has been linked, the so-called entry point must be adjusted in the TYPO3 site configuration so that the front-end output of the website also functions correctly.
Check project, update extensions
The installation should be checked before the actual upgrade. Does everything work in the copy exactly as it does on the live site?
In this phase, you should also check the extensions used. Are all active extensions actually required? Or are there still some "skeletons" in the system?
Extensions that are not actively used should be completely removed from the system.
For all actively used extensions, you must check whether they are available for the new TYPO3 version. It may already be possible to update the extensions in TYPO3 9 and continue using them directly in TYPO3 10.
However, there are also extensions that need to be temporarily deactivated (e.g. Gridelements). The new versions of such extensions can then only be updated and reactivated in TYPO3 10.
If you are using an extension that is not available for TYPO3 10, you may have to look for an alternative. Perhaps there is an extension compatible with 10 that has the same or at least a similar range of functions.
In the worst case, you may have to contact the extension developer and request an update of the extension.
Updating the TYPO3 core
The next step is to "replace" the TYPO3 core. In a symlink-based installation, this means changing the target of the symlink to the directory of the new TYPO3 core.
You can then call up the install tool via the web address
domain.de/typo3/install.php
You may now receive a message that you should create a file called ENABLE_INSTALL_TOOL in the typo3conf/ directory.
To do this, change to this directory in the shell and create the file:
cd typo3conf/
touch ENABLE_INSTALL_TOOL
This file does not need any content, it simply needs to exist.
Then call up the install tool again and the login screen should appear.
If you do not (or no longer) know the password for the Installtool: here you will find instructions on how to reset the Installtool password.
The Upgrade Wizard and the Database Analyzer can then be run in the Installtool. The language packs should also be updated.
Finally, delete all caches, then you should already see in the backend that you are now working in the current TYPO3 10.4.x.
Optional: Replace sample project 9 with sample project 10
All configuration of the sample project is stored in its own small extension, a so-called site package. However, this extension in version 9 (jwmusterprojekt9) cannot be updated directly to version 10 (jwmusterprojekt10).
However, it is possible to simply exchange the extensions.
Important: If you have made changes in the files of the ext. jwmusterprojekt9, for example in the CSS, JavaScript or the fluid templates, these changes cannot be applied automatically. You would have to transfer the necessary changes manually.
The video shows you the most important steps for replacing the sample project extension.
You can find detailed documentation on the functions of sample project 10 here.
Tidying up and going live
Before the updated version of the website goes live, you should "clean up" a little. This includes, for example, deleting extensions that are no longer used, checking again that the database is up to date and clean and that the system is running in live mode.
The new version should then be displayed via the main domain.
Customize backup script
The project should now be included in the daily script at the latest. This file is located in the typo3cms/system/backup directory.
The script is not only used to perform nightly backups of the projects listed there, but also to control maintenance work on the hosting package or the distribution of new TYPO3 versions.
Of course, backups are also created automatically on external systems, but you have direct access to the backups created by the daily script.
This page contains automatically translated content.