Posted by polskikrol on November 26, 2012 at 5:38pm
6 followers
Jump to:
| Project: | Pathauto |
| Version: | 7.x-1.2 |
| Component: | Code |
| Category: | bug report |
| Priority: | normal |
| Assigned: | Unassigned |
| Status: | closed (duplicate) |
Issue Summary
Under settings, have the following option enabled:
- Create a new alias. Delete the old alias.
I had already created URL aliases for Users, changed the pattern, and updated. Nothing. Had to delete the existing User aliases and only then did Bulk Update work.
Comments
#1
Did you clear your (Drupal) cache first? If so, please try to reproduce this bug from a clean install of Drupal 7.
#2
I ran into this same situation. I expected bulk updates of user URL aliases to update all users, but only users who are missing aliases get updated.
The problem is in user_pathauto_bulk_update_batch_process in pathauto.pathauto.inc. The query is restricted to users whose url_alias.source is NULL. You can comment out $query->isNull('ua.source'). Since the url_alias table is only joined for the WHERE, you can also comment out $query->leftJoin('url_alias', 'ua', "CONCAT('user/', u.uid) = ua.source"). (Which also makes things run waaaaaaay faster because that join on integer with a concat string is super slooooooow.)
That leaves the question: why was it this way in the first place? Why did bulk updates only hit users without an alias instead of hitting all users?
#3
I s'pose there's a concern that other modules may depend on the join to url_alias (since the query is tagged for alters). You can leave the join for them. It might be wise, though, to apply the patch from here: #1415930: Use cast inside concat for better legacy MySQL performance & pgsql compliance. Change the concat to use a cast on the integer.
All that remains then is to delete line 298.
#4
The 'Bulk update' tab is badly named. It's actually 'Bulk generate' for new items only. You can regenerate Pathauto URL aliases using VBO or the 'Update URL alias' on admin/content or admin/people. See #1003490: Allow users to re-alias entities with the Bulk update page.
#5
Okey dokey. Thanks.
But hmmm. I'm still kinda stuck. If I wanna do bulk updates on hundreds or thousands of users at a time, VBO doesn't really cut it. I can only do updates to one page at a time with VBO, and that'd take forever.
Or is there some secret sauce to do all existing users all at once? If not, I'd suggest a patch that does offer a "bulk update" in addition to a "bulk generate".
#6
@elephant.jim: sounds like a good idea. At a minimum, the tab should be renamed to clarify its function.
#7
Just ran into this too. The tip in #4 to use 'Update URL alias' on admin/people did the trick.
@polskikrol The bulk update page says "Select the types of un-aliased paths for which to generate URL aliases", but I didn't read it :)
#8
Looks like "Bulk update" has been renamed to "Bulk generate": #1003490: Allow users to re-alias entities with the Bulk update page
http://drupalcode.org/project/pathauto.git/commitdiff/8b934e4023c2541371...
#9
I ran into this problem with some content. When I went to the contents, I found the "automatic generate URL" was unchecked. If I ran pathauto bulk updated and delete old aliases, I go back to unclean URLs. In order to fix this, I must go to each node and check "automatic generate URL" and NOT bulk update from pathauto itself.