CrateDB vector: Improve SQLAlchemy model factory #13
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.
Hi there,
this patch intends to support fixing GH-11, and to make progress towards GH-12. From now on, all instances 1 of SQLAlchemy model types will be created at runtime through the
ModelFactory
utility, effectively making the storage model more dynamic.By using
__table_args__ = {"keep_existing": True}
on the ORM entity definitions, this seems to work well, even with multiple invocations ofCrateDBVectorSearch.from_texts()
using differentcollection_name
argument values.The patch is very hard to read. Additional context/explanation: 1.
With kind regards,
Andreas.
Footnotes
There have been some details of the SA model definitions which still happened at compile-time beforehand. Now, everything concerned about establishing SA model classes is happening at runtime. This may feel weird, but is the approved way to get more flexibility. A future patch will probably leverage that flexibility by also configuring the table name based on variants. ↩ ↩2