9 * add an entity |
9 * add an entity |
10 * execute raw RQL queries |
10 * execute raw RQL queries |
11 |
11 |
12 |
12 |
13 :organization: Logilab |
13 :organization: Logilab |
14 :copyright: 2001-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved. |
14 :copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved. |
15 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr |
15 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr |
16 """ |
16 """ |
17 __docformat__ = "restructuredtext en" |
17 __docformat__ = "restructuredtext en" |
18 |
18 |
19 import sys |
19 import sys |
677 return |
677 return |
678 repospschema = repoeschema.specializes() |
678 repospschema = repoeschema.specializes() |
679 espschema = eschema.specializes() |
679 espschema = eschema.specializes() |
680 if repospschema and not espschema: |
680 if repospschema and not espschema: |
681 self.rqlexec('DELETE X specializes Y WHERE X is EEType, X name %(x)s', |
681 self.rqlexec('DELETE X specializes Y WHERE X is EEType, X name %(x)s', |
682 {'x': str(repoechema)}) |
682 {'x': str(repoeschema)}) |
683 elif not repospschema and espschema: |
683 elif not repospschema and espschema: |
684 self.rqlexec('SET X specializes Y WHERE X is EEType, X name %(x)s, ' |
684 self.rqlexec('SET X specializes Y WHERE X is EEType, X name %(x)s, ' |
685 'Y is EEType, Y name %(y)s', |
685 'Y is EEType, Y name %(y)s', |
686 {'x': str(repoechema), 'y': str(epschema)}) |
686 {'x': str(repoeschema), 'y': str(espschema)}) |
687 self.rqlexecall(ss.updateeschema2rql(eschema), |
687 self.rqlexecall(ss.updateeschema2rql(eschema), |
688 ask_confirm=self.verbosity >= 2) |
688 ask_confirm=self.verbosity >= 2) |
689 for rschema, targettypes, x in eschema.relation_definitions(True): |
689 for rschema, targettypes, x in eschema.relation_definitions(True): |
690 if x == 'subject': |
690 if x == 'subject': |
691 if not rschema in repoeschema.subject_relations(): |
691 if not rschema in repoeschema.subject_relations(): |