[ckan-changes] [okfn/ckan] 1a5fe1: Get a package's groups from the member table
GitHub
noreply at github.com
Fri Mar 8 16:47:33 UTC 2013
Branch: refs/heads/get_package_groups_from_member_table_branched_off_2.0
Home: https://github.com/okfn/ckan
Commit: 1a5fe1e1478cd3fc5170dd7e86b61a40e1dfc748
https://github.com/okfn/ckan/commit/1a5fe1e1478cd3fc5170dd7e86b61a40e1dfc748
Author: Sean Hammond <seanhammond at lavabit.com>
Date: 2013-03-08 (Fri, 08 Mar 2013)
Changed paths:
M ckan/lib/dictization/model_dictize.py
Log Message:
-----------
Get a package's groups from the member table
Get a package's groups from the member table, not the member_revision
table.
After migrating a CKAN 1.3 database to CKAN 2.0, all of the group pages
showed no packages. On investigagin, I found:
group_show() would report "num_packages": 0 for a group, but under
"packages" there would be a non-empty list of packages.
package_show() for those same packages would show "groups": [].
Solr search queries would return no packages for the groups.
So the various ways of getting a count or list of a group's packages or
a package's groups were contradicting eachother.
The reason was that the member table in the database contained NULL for
the revision_id column for every row. Whether NULL should have been in
this column, or how it got there, I don't know. (Perhaps this is a bug
in the database migration scripts.)
When finding a group's list of packages, group_dictize() looks at the
member table, so it was finding the packages no problem.
But when finding a package's list of groups, package_dictize() does a
query on the member_revision table, not on the member table. Since in
this migrated database, the member table rows do not seem to have any
member_revisions, it was finding no groups for a package.
Since it's package dicts, not groups, that get indexed in Solr, each package
was indexed with no groups, and so Solr queries for packages in a group
returned 0.
This commit changes package_dictize() to use the member table not the
member_revision table to find a package's groups. After making this
change, I was able to rebuild the solr search index and my packages
reappeared on the group pages.
More information about the ckan-changes
mailing list