jvelletti / jve-upgradewizard
Update helper for lts12 Fixes the ways Typoscript and TSconfig included files have been added in database.
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:typo3-cms-extension
Requires
- typo3/cms-core: ^11.5 || ^12.4
Replaces
- typo3-ter/jve-upgradewizard: 12.4.9
README
========================
Version 12.5.9 | 22.9.2023
Tested with TYPO3 LTS 12.4.6 undter PHP 8.1
Tested with TYPO3 LTS 11.4.31 undter PHP 7.4 \
works on following database tables / fields: \
sys_template -> config and constants
pages -> TSconfig
fe_users -> TSconfig
fe_groups -> TSconfig
be_users -> TSconfig
be_groups -> TSconfig
You have more Database tables with TSconfig ? feel free to add an issue or a pull request.
Fixes also filenames and there Content on a local DEV mashine in a given folder renames if needed extenion of file from
'ts', 'txt', 'text' , 't3' , 't3s' , 'tscript' , 'tsconfig'
to
'typoscript'
Important NOTICE
-
you should have a database copy!
-
you should be aware in case of many pages or fe_users, it may be slow
-
run this wizard on production system only if you have tested it locally
-
you should have experience to cun typo3 console command
-
you should work with any vcs like git
-
make a copy of your template folder for easier testing
./vendor/bin/typo3 upgrade:run jveUpgradewizard_upgradeTemplates -vv
./vendor/bin/typo3 jvelletti:updatefiles --path=/test -vv
Fixes file ending .ts .txt and .text etc to .typoscript in database with warning
CONST UNWANTED_EXTENSIONS = ['ts', 'txt', 'text' , 't3' , 't3s' , 'tscript' , 'tsconfig' ] ;
@import 'EXT:jve_template/Configuration/TypoScript/TSConfig/TSConfig.ts'
@import 'EXT:jve_template/Configuration/TypoScript/TSConfig/TSConfig.txt'
@import 'EXT:jve_template/Configuration/TypoScript/TSConfig/TSConfig.text'
Fixes wrong "EXT:" or missing "EXT: syntax
not required, but helps to make extension to fiddle result easier
@import "FILE:EXT:jve_template/Configuration/TypoScript/TSConfig/TSConfig.typoscript"
@import "/typo3conf/ext/jve_template/Configuration/TypoScript/TSConfig/TSConfig.typoscript"
Fixes INCLUDE_TYPOSCRIPT src=
<INCLUDE_TYPOSCRIPT src="/typo3conf/ext/jve_template/Configuration/TypoScript/TSConfig/TSConfig.typoscript">
<INCLUDE_TYPOSCRIPT src='/typo3conf/ext/jve_template/Configuration/TypoScript/TSConfig/TSConfig.typoscript'>
Changes double quote " char to single quote '
not required, but helps to make extension to fiddle result easier
@import "EXT:jve_template/Configuration/TypoScript/TSConfig/TSConfig.typoscript"
Result in all cases:
@import 'EXT:jve_template/Configuration/TypoScript/TSConfig/TSConfig.typoscript'
fixes also lines starting with # but keep coment status intakt.
Warns if file in fileadmin and not in any EXT Folder:
@import "/fileadmin/template/TSConfig/TSConfig.typoscript"
Fixes files In a given template Folder on a local test systems
./vendor/bin/typo3 jvelletti:updatefiles -vv
enter path to your Template folder f.e. :
/vendor/jvelletti/jve-upgradewizard/Configuration/TypoScript/
this extension comes along with some test files there. check the content to see some common error / outdated syntax \
you are asked to confirm changes with "yes"
you can also start the script with a given path: but sill will have to enter "yes"
(argument --force to skip confirmation is planned after sevaral tests that it is working correctly)
./vendor/bin/typo3 jvelletti:updatefiles --path=/vendor/jvelletti/jve-upgradewizard/Configuration/TypoScript/ -vv
the Console command searches for all files with definied Endings :
CONST UNWANTED_EXTENSIONS = ['ts', 'txt', 'text' , 't3' , 't3s' , 'tscript' , 'tsconfig' ] ;
Renames these files if needed to ".typoscript" and fixes the content of this tiles in same way like database entries
lines without "@import" and "INCLUDE_TYPOSCRIPT" are unchanged \
Restrictions
- does not fix entries in folder "/fileadmin" like @import "/fileadmin/tscript.ts"
Best pratices
as maybe 3 steps are needed: renaming the files in filesystem and changing the name of imported file in database,
and finally a Clear TYPO§ Cache, the website will not be available for some time.
If you need to avoid this and have no other option, try the following steps
-
create a Feature branch for the migration f.e.: "migration-feature"
-
create a copy of the template file Folder outside of the doc root f.e. "backup-migration"
-
run updateData command on template Files:
./vendor/bin/typo3 jvelletti:updatefiles --path=/vendor/your-vendor/your-template-ext/Configuration/TypoScript/ -vv
-
filenames with old extensions will be renamed by the script command
-
push this to "migration-feature" Branch
-
create a 'final-feature' branch from result.
-
run Upgradewizard manuall via cli on local dev mashine to update local your database entries and do needed tests
./vendor/bin/typo3 upgrade:run jveUpgradewizard_upgradeTemplates -vv
on success:
-
switch back to "migration-feature" Branch
-
copy OLD files (with wrong file extensions or old IMPORT_TYPOSCRIPT syntaxt) from "backup-migration"
-
push this to "migration-feature" Branch (so BOTH file versions exist: the WANTED New ones and OLD used via database)
-
pull this to the webserver
-
run Upgradewizard manuall via cli
./vendor/bin/typo3 upgrade:run jveUpgradewizard_upgradeTemplates -vv
-
As in step 10 you have both versions of files, it is not import if upgrade takes time.
-
As with step 11 your database now shuld only use New renamed files you can cleanup.
-
to remove the OLD template files, switch to 'final-feature' branch
Internal reminder for the extension maintainer:
To Update this extension in TER:
change version Number to "x.y.z" in Documentation\ in Settings.cfg and Index.rst
create Tag "x.y.z"
git push --tags
create new zip file:
cd vendor/jvelletti/jve-upgradewizard
git archive -o "jve_upgradewizard_x.y.z.zip" HEAD
f.e.:
git archive -o "jve_upgradewizard_12.4.9.zip" HEAD
Upload ZIP File to https://extensions.typo3.org/my-extensions
git push
setup packagist Webhook:
https://packagist.org/api/update-package?username=jvelletti
api Token from Profile:
https://packagist.org/profile/
check:
https://intercept.typo3.com/admin/docs/deployments
https://packagist.org/packages/jvelletti/jve_upgradewizard
https://extensions.typo3.org/extension/jve_upgradewizard/