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 or repaired 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.
Important
Member Journal entries now remain available even if the related member record is deleted. This is intentional: personal member data can still be removed where required, while the journal history remains available for historical and anonymous statistical evaluation. See also Clubmanager Statistics.
Step 5: Optional Repair Wizards for Existing Data
For installations that were already running with Member Journal data, two additional repair wizards may be relevant.
Note
The repair wizards are only shown if affected records are actually found in the database.
If your installation does not contain deleted Member Journal entries that need to be restored or cancelled members without the corresponding journal entry, these wizards will not appear in the Upgrade Wizard. This is expected behavior.
In some cases, members already marked as cancelled did not receive the
corresponding cancelled Member Journal entry. This affected historical data
around cancellations effective on or after 31.. The wizard
Clubmanager: Fehlende Kündigungs-Journal-Einträge nachlegen repairs such
cases by creating the missing journal entries.
In other cases, deleting a member also removed related Member Journal entries. The wizard Clubmanager: Fälschlich gelöschte Journal-Einträge wiederherstellen restores these incorrectly deleted journal records.
If both repair wizards are offered in your system, run them in this order:
- Clubmanager: Fälschlich gelöschte Journal-Einträge wiederherstellen
- Clubmanager: Fehlende Kündigungs-Journal-Einträge nachlegen
Important
Create a database backup before running the repair wizards. They are intended for existing installations where historical journal data may already be incomplete.
Step 6: Database Compare
After the wizard has completed successfully, you may run "Analyze Database" and "Database Compare".