28 from os.path import join, exists |
28 from os.path import join, exists |
29 from glob import glob |
29 from glob import glob |
30 from contextlib import contextmanager |
30 from contextlib import contextmanager |
31 |
31 |
32 from six import text_type, string_types |
32 from six import text_type, string_types |
|
33 from six.moves import filter |
33 |
34 |
34 from logilab.common.modutils import LazyObject |
35 from logilab.common.modutils import LazyObject |
35 from logilab.common.textutils import splitstrip |
36 from logilab.common.textutils import splitstrip |
36 from logilab.common.registry import yes |
37 from logilab.common.registry import yes |
37 from logilab import database |
38 from logilab import database |
243 failed = sqlexec(dropsql, execute, cnx=sqlcnx, |
244 failed = sqlexec(dropsql, execute, cnx=sqlcnx, |
244 pbtitle='-> dropping tables (first pass)') |
245 pbtitle='-> dropping tables (first pass)') |
245 if failed: |
246 if failed: |
246 failed = sqlexec(failed, execute, cnx=sqlcnx, |
247 failed = sqlexec(failed, execute, cnx=sqlcnx, |
247 pbtitle='-> dropping tables (second pass)') |
248 pbtitle='-> dropping tables (second pass)') |
248 remainings = filter(drop_filter, helper.list_tables(sqlcursor)) |
249 remainings = list(filter(drop_filter, helper.list_tables(sqlcursor))) |
249 assert not remainings, 'Remaining tables: %s' % ', '.join(remainings) |
250 assert not remainings, 'Remaining tables: %s' % ', '.join(remainings) |
250 _title = '-> creating tables ' |
251 _title = '-> creating tables ' |
251 print(_title, end=' ') |
252 print(_title, end=' ') |
252 # schema entities and relations tables |
253 # schema entities and relations tables |
253 # can't skip entities table even if system source doesn't support them, |
254 # can't skip entities table even if system source doesn't support them, |