author | Sylvain Thénault <sylvain.thenault@logilab.fr> |
Wed, 20 Jul 2011 18:21:47 +0200 | |
branch | oldstable |
changeset 7676 | cc3987eb793c |
parent 6636 | dbc9cce53c11 |
child 7398 | 26695dd703d8 |
permissions | -rw-r--r-- |
6636
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
1 |
from cubicweb import UnknownEid |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
2 |
source, = __args__ |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
3 |
|
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
4 |
sql("DELETE FROM entities WHERE type='Int'") |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
5 |
|
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
6 |
ecnx = session.pool.connection(source) |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
7 |
for e in rql('Any X WHERE X cw_source S, S name %(name)s', {'name': source}).entities(): |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
8 |
meta = e.cw_metainformation() |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
9 |
assert meta['source']['uri'] == source |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
10 |
try: |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
11 |
suri = ecnx.describe(meta['extid'])[1] |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
12 |
except UnknownEid: |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
13 |
print 'cant describe', e.__regid__, e.eid, meta |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
14 |
continue |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
15 |
if suri != 'system': |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
16 |
try: |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
17 |
print 'deleting', e.__regid__, e.eid, suri, e.dc_title().encode('utf8') |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
18 |
repo.delete_info(session, e, suri, meta['extid'], scleanup=True) |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
19 |
except UnknownEid: |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
20 |
print ' cant delete', e.__regid__, e.eid, meta |
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
21 |
|
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
22 |
|
dbc9cce53c11
[ms] script to drop external entities from an external source
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
23 |
commit() |