Upgrade from 1.2.5 to 2.0.0
This upgrade introduces breaking changes to the data model of ext:. The main architectural change is the introduction of the Member Journal, which replaces direct manipulation of membership status and level fields.
Breaking Changes
The following fields are no longer editable directly:
starttimeendtimestatelevel
These values are now exclusively derived from Member Journal Entries. The database field cancellation_wish has been removed.
Architectural Change: Member Journal
Version 2.0.0 introduces the Member Journal as the single source of truth for all membership status and level changes.
Instead of directly modifying the fields state, level, starttime and endtime inside the member record, all changes are now created as journal entries. The system derives the effective membership state from these entries.
This architectural change ensures:
- Complete historical tracking of status changes
- Complete historical tracking of level changes
- Statistically correct member development over time
- Persistence of historical data even if a member record is deleted
The Member Journal forms the foundation for advanced features such as statistics, billing and frontend self-service functionality.
Field Behaviour Changes
The following member fields are no longer editable directly in version 2.0.0. Their values are exclusively derived from Member Journal entries.
starttime
The field starttime is set automatically when a member receives the status active for the first time. Once set, this value is never modified again, even if the member later changes status (e.g. becomes resting or cancelled).
endtime
The field endtime is set automatically when a status change to cancelled becomes effective. If the effective date lies in the future, the value is stored but the final status transition is processed by the scheduler task.
state
The field state is no longer editable. It always reflects the latest processed status change from the Member Journal.
level
The field level is no longer editable. Level changes must be performed via Member Journal entries of type Level Change.
Upgrade Procedure
Warning
Do not run "Analyze Database" or "Database Compare" before executing the upgrade wizard. The field cancellation_wish is removed in version 2.0.0 and must be migrated first.
Step 1: Update Extension
Update ext: to version 2.0.0 via Composer or the TYPO3 Extension Repository.
Important
Before continuing, ensure the required Site Sets are enabled in Site Management for your site:
bootstrap-package/ full quicko/clubmanager
Also check your main TypoScript template record and remove the
Clear checkboxes there.
If Clear remains enabled, required TypoScript from the Site Sets can be
suppressed.
Step 2: Create Missing Tables and Fields
Run the TYPO3 upgrade wizard Create Missing Tables and Fields to create the new table:
tx_clubmanager_domain_model_memberjournalentry
This table stores all future status and level changes independently from the member record itself.
Step 3: Configure Member Journal Storage Page
Before running the migration wizard, you must define where Member Journal entries will be stored.
- Go to Site Management > Settings
- Select your site configuration
- Open section Clubmanager > Member Journal
- Set the field Member Journal Storage Page to a dedicated sysfolder UID
If this value is set to 0, journal entries will be stored in the same
folder as the corresponding member record.
Important
The storage page must be configured before executing the upgrade wizard. Otherwise initial journal entries may be created in unintended locations.
Step 4: Run Upgrade Wizard
Execute the following upgrade wizard:
Clubmanager: Initiale Member-Journal Einträge
This wizard creates initial journal entries for all existing members based on their current state, starttime and endtime. Existing cancellation wishes are migrated into journal entries before the old field is removed.
The wizard should only be executed once.
Important
Configure and activate the new scheduler task for Member Journal processing after the migration. See Member Journal processing task for setup details and execution behavior.
Step 5: Database Compare
After the wizard has completed successfully, you may run "Analyze Database" and "Database Compare".