-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
[HttpFoundation] Added a migrating session handler #26096
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[HttpFoundation] Added a migrating session handler #26096
Conversation
5139b08
to
4698577
Compare
This sounds interesting. But this will only migrate sessions that are accessed. How do you deal with session data from currently inactive users? I guess you still need to manually transfer the data from the old storage to the new one for those. Or you just let them expire after the migration phase. |
Hi @Tobion, we leave the migrating handler running for at least the session garbage collection period, as any sessions which have not been written to during that time are considered stale and may be removed by the session handlers themselves. |
@rossmotley is this PR ready on your side? |
@nicolas-grekas If there isn't anything to change with the code, then I think it's just adding something to the changelog and documentation. Should the changelog changes be added to this PR? |
The changelog of the component yes (not the root changelog as it is autogenerated) |
68bbd0e
to
8ec1f99
Compare
8ec1f99
to
20af2bd
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some CS error but otherwise looks ok
src/Symfony/Component/HttpFoundation/Session/Storage/Handler/MigratingSessionHandler.php
Outdated
Show resolved
Hide resolved
src/Symfony/Component/HttpFoundation/Session/Storage/Handler/MigratingSessionHandler.php
Outdated
Show resolved
Hide resolved
...mfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MigratingSessionHandlerTest.php
Outdated
Show resolved
Hide resolved
...mfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MigratingSessionHandlerTest.php
Outdated
Show resolved
Hide resolved
src/Symfony/Component/HttpFoundation/Session/Storage/Handler/MigratingSessionHandler.php
Outdated
Show resolved
Hide resolved
...mfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MigratingSessionHandlerTest.php
Outdated
Show resolved
Hide resolved
70cea86
to
fb124b1
Compare
@Tobion I have made the requested changes |
fb124b1
to
3acd548
Compare
Thank you @rossmotley. |
…ssmotley) This PR was squashed before being merged into the 4.1-dev branch (closes #26096). Discussion ---------- [HttpFoundation] Added a migrating session handler | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | yes | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | | License | MIT | Doc PR | symfony/symfony-docs#9496 - [x] gather feedback for my changes - [x] submit changes to the documentation - [x] update the changelog When migrating to a new session handler on a live system, it's useful to be able to do it with no loss of session data. This migrating handler allows the sessions to be written to an additional handler to enable a migration workflow like: * Switch to migrating handler, with your new handler as the 'write only' one. The old handler behaves as usual and sessions get written to the new one. * After verifying the data in the new handler (and after the session gc period), switch the migrating handler to use your old handler as the 'write only' one instead, so the sessions will now be read from the new handler. This step allows easier rollbacks. * After verifying everything, switch from the migrating handler to the new handler Commits ------- 3acd548 [HttpFoundation] Added a migrating session handler
We forgot implementing |
…SessionUpdateTimestampHandlerInterface (nicolas-grekas) This PR was merged into the 4.1-dev branch. Discussion ---------- [HttpFoundation] Have MigratingSessionHandler implement SessionUpdateTimestampHandlerInterface | Q | A | ------------- | --- | Branch? | master | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | - | License | MIT | Doc PR | - Forgotten in #26096 Commits ------- 5d7117b [HttpFoundation] Have MigratingSessionHandler implement SessionUpdateTimestampHandlerInterface
…uiluz) This PR was merged into the 4.1 branch. Discussion ---------- Adding MigratingSessionHandler docs Adding `MigratingSessionHandler` documentation for symfony/symfony#26096 Commits ------- e93756f Added the versionadded directive 386f639 Reworded and simplified 7c8264d Update session_configuration.rst e971074 Update session_configuration.rst 91aa58d Adding MigratingSessionHandler docs
When migrating to a new session handler on a live system, it's useful to be able to do it with no loss of session data. This migrating handler allows the sessions to be written to an additional handler to enable a migration workflow like: