[migration] Improve update of in-memory schema during 3.18 CWAttribute.defaultval change
We weren't updating the schema properly so a bunch of structures still
had the old rdef with 'String' as object. That caused failures to add
new attributes later in the migration as their default value would be a
Binary object but the schema would expect a String.
Closes #3683640
sync_schema_props_perms('EmailAddress')
for source in rql('CWSource X WHERE X type "pyrorql"').entities():
sconfig = source.dictconfig
nsid = sconfig.pop('pyro-ns-id', config.appid)
nshost = sconfig.pop('pyro-ns-host', '')
nsgroup = sconfig.pop('pyro-ns-group', ':cubicweb')
if nsgroup:
nsgroup += '.'
source.cw_set(url=u'pyro://%s/%s%s' % (nshost, nsgroup, nsid))
source.update_config(skip_unknown=True, **sconfig)
commit()