feat(database): add support for table name prefixing for shared database compatibility #689
+22
−10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary:
This PR addresses #688 by introducing automatic support for table name prefixing in SQLAlchemy models using a custom metaclass. All model
__tablename__
values are now prefixed with"adk_"
.Details:
Implement a custom
DeclarativeMeta
(PrefixerMeta
) to prepend a prefix to all SQLAlchemy model table names.Currently, the prefix is hardcoded as
adk_
. If you want, we can make it configurable by replacing:with:
Adjusted
ForeignKeyConstraint
definitions to dynamically referenceStorageSession.__tablename__
instead of hardcoding"sessions"
.Testing:
Verified against
pytest
with no regressions:main
branch (screenshots attached)Below are the screenshots of test results:
This branch:

Main branch (baseline):

Please let me know your thoughts on this PR, I’m happy to iterate on this implementation or adapt it to better align with the project’s design principles.