misc/migration/3.5.3_Any.py
author Pierre-Yves David <pierre-yves.david@logilab.fr>
Wed, 07 Mar 2012 16:09:55 +0100
branchstable
changeset 8296 f23782a2cdee
parent 3666 7d0f6234b001
child 8798 cdab3aadc679
permissions -rw-r--r--
rqlrewrite: remove element in rewritten when we remove them from the select (closes #2236985) update _cleanup_inserted to avoid leaving rewritten variable behind when removing a snipset. insert_varmap_snippets was impacted too for unclear reason --- Before A KeyError was raised when: * multiple snipset is to be inserted on a statement * some *supported* snipset adds ambiguity (increase the number of solution) * some *unsupported* snipset adds new variable * The new variable require rewritting :: File "/home/pyves/src/fcw/cubicweb/rqlrewrite.py", line 185, in rewrite newsolutions = self.remove_ambiguities(snippets, newsolutions) File "/home/pyves/src/fcw/cubicweb/rqlrewrite.py", line 436, in remove_ambiguities variantes = self.build_variantes(newsolutions) File "/home/pyves/src/fcw/cubicweb/devtools/repotest.py", line 340, in _build_variantes variantes = _orig_build_variantes(self, newsolutions) File "/home/pyves/src/fcw/cubicweb/rqlrewrite.py", line 470, in build_variantes variante.append( (key, sol[newvar]) ) KeyError: u'D' This happen because the mechanism removing unsupported snipset does not remove entry in ``self.rewritten`` when it removes entry from ``self.select.defined_vars``. Iteration on ``self.rewritten`` then crash because values of ``rewritten`` are expected to be found in solution.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3611
8d7d4a67820f [migration] fix 3.5.3_Any.py for migrations starting from before 3.5
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 3528
diff changeset
     1
# type attribute might already be there if migrating from
8d7d4a67820f [migration] fix 3.5.3_Any.py for migrations starting from before 3.5
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 3528
diff changeset
     2
# version < 3.5 to version >= 3.5.3, BaseTransition being added
8d7d4a67820f [migration] fix 3.5.3_Any.py for migrations starting from before 3.5
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 3528
diff changeset
     3
# in bootstrap_migration
3666
7d0f6234b001 fix migration script
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 3612
diff changeset
     4
if versions_map['cubicweb'][0] >= (3, 5, 0):
3611
8d7d4a67820f [migration] fix 3.5.3_Any.py for migrations starting from before 3.5
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 3528
diff changeset
     5
    add_attribute('BaseTransition', 'type')
3612
0605d8755613 [migration] make it more explicit that BaseTransition upgrade should only be done if migrating from version prior to 3.5
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 3611
diff changeset
     6
    sync_schema_props_perms('state_of')
0605d8755613 [migration] make it more explicit that BaseTransition upgrade should only be done if migrating from version prior to 3.5
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 3611
diff changeset
     7
    sync_schema_props_perms('transition_of')