Fix namespaced model table names in upgrade generator #398
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.
Description
This PR fixes issue #397 where the upgrade generator produces invalid table names for namespaced models.
Problem
When using custom model names with namespaces (like
Assistant::Chat
,Assistant::Message
, etc.) and running the upgrade generator:The migration would generate invalid table names like
:assistant/chats
instead of:assistant_chats
.Solution
The issue was that the generator was using
.tableize
which produces forward slashes for namespaced models. This has been fixed by using.underscore.pluralize.tr('/', '_')
which properly converts namespaced model names to valid table names.Changes:
table_name_for
helper method that correctly handles namespaced modelschat_table_name
,message_table_name
, etc.).tableize
Testing
Tested with namespaced models to confirm:
Assistant::Chat
→assistant_chats
✓Assistant::Message
→assistant_messages
✓Assistant::ToolCall
→assistant_tool_calls
✓Assistant::Model
→assistant_models
✓Regular models continue to work as expected:
Chat
→chats
✓Message
→messages
✓Fixes #397