equal
deleted
inserted
replaced
25 from logging import getLogger |
25 from logging import getLogger |
26 from datetime import time, datetime, timedelta |
26 from datetime import time, datetime, timedelta |
27 |
27 |
28 from pytz import utc |
28 from pytz import utc |
29 |
29 |
30 from logilab import database as db, common as lgc |
30 from logilab import database as logilab_database, common as lgc |
31 from logilab.common.shellutils import ProgressBar, DummyProgressBar |
31 from logilab.common.shellutils import ProgressBar, DummyProgressBar |
32 from logilab.common.logging_ext import set_log_methods |
32 from logilab.common.logging_ext import set_log_methods |
33 from logilab.common.date import utctime, utcdatetime, strptime |
33 from logilab.common.date import utctime, utcdatetime, strptime |
34 from logilab.database.sqlgen import SQLGenerator |
34 from logilab.database.sqlgen import SQLGenerator |
35 |
35 |
117 """ |
117 """ |
118 from cubicweb.server.schema2sql import grant_schema |
118 from cubicweb.server.schema2sql import grant_schema |
119 from cubicweb.server.sources import native |
119 from cubicweb.server.sources import native |
120 stmts = list(native.grant_schema(user, set_owner)) |
120 stmts = list(native.grant_schema(user, set_owner)) |
121 if text_index: |
121 if text_index: |
122 dbhelper = db.get_db_helper(driver) |
122 dbhelper = logilab_database.get_db_helper(driver) |
123 # XXX should return a list of sql statements rather than ';' joined statements |
123 # XXX should return a list of sql statements rather than ';' joined statements |
124 stmts += dbhelper.sql_grant_user_on_fti(user).split(';') |
124 stmts += dbhelper.sql_grant_user_on_fti(user).split(';') |
125 stmts += grant_schema(schema, user, set_owner, skip_entities=skip_entities, prefix=SQL_PREFIX) |
125 stmts += grant_schema(schema, user, set_owner, skip_entities=skip_entities, prefix=SQL_PREFIX) |
126 return stmts |
126 return stmts |
127 |
127 |
134 from cubicweb.server.schema2sql import schema2sql |
134 from cubicweb.server.schema2sql import schema2sql |
135 from cubicweb.server.sources import native |
135 from cubicweb.server.sources import native |
136 if set_owner: |
136 if set_owner: |
137 assert user, 'user is argument required when set_owner is true' |
137 assert user, 'user is argument required when set_owner is true' |
138 stmts = list(native.sql_schema(driver)) |
138 stmts = list(native.sql_schema(driver)) |
139 dbhelper = db.get_db_helper(driver) |
139 dbhelper = logilab_database.get_db_helper(driver) |
140 if text_index: |
140 if text_index: |
141 stmts += dbhelper.sql_init_fti().split(';') # XXX |
141 stmts += dbhelper.sql_init_fti().split(';') # XXX |
142 stmts += schema2sql(dbhelper, schema, prefix=SQL_PREFIX, |
142 stmts += schema2sql(dbhelper, schema, prefix=SQL_PREFIX, |
143 skip_entities=skip_entities, |
143 skip_entities=skip_entities, |
144 skip_relations=skip_relations) |
144 skip_relations=skip_relations) |
152 |
152 |
153 |
153 |
154 def sql_drop_all_user_tables(driver_or_helper, sqlcursor): |
154 def sql_drop_all_user_tables(driver_or_helper, sqlcursor): |
155 """Return ths sql to drop all tables found in the database system.""" |
155 """Return ths sql to drop all tables found in the database system.""" |
156 if not getattr(driver_or_helper, 'list_tables', None): |
156 if not getattr(driver_or_helper, 'list_tables', None): |
157 dbhelper = db.get_db_helper(driver_or_helper) |
157 dbhelper = logilab_database.get_db_helper(driver_or_helper) |
158 else: |
158 else: |
159 dbhelper = driver_or_helper |
159 dbhelper = driver_or_helper |
160 |
160 |
161 stmts = [dbhelper.sql_drop_sequence('entities_id_seq')] |
161 stmts = [dbhelper.sql_drop_sequence('entities_id_seq')] |
162 # for mssql, we need to drop views before tables |
162 # for mssql, we need to drop views before tables |
289 dbpassword = source_config.get('db-password') |
289 dbpassword = source_config.get('db-password') |
290 dbencoding = source_config.get('db-encoding', 'UTF-8') |
290 dbencoding = source_config.get('db-encoding', 'UTF-8') |
291 dbextraargs = source_config.get('db-extra-arguments') |
291 dbextraargs = source_config.get('db-extra-arguments') |
292 dbnamespace = source_config.get('db-namespace') |
292 dbnamespace = source_config.get('db-namespace') |
293 |
293 |
294 self.dbhelper = db.get_db_helper(self.dbdriver) |
294 self.dbhelper = logilab_database.get_db_helper(self.dbdriver) |
295 self.dbhelper.record_connection_info(dbname, dbhost, dbport, dbuser, |
295 self.dbhelper.record_connection_info(dbname, dbhost, dbport, dbuser, |
296 dbpassword, dbextraargs, |
296 dbpassword, dbextraargs, |
297 dbencoding, dbnamespace) |
297 dbencoding, dbnamespace) |
298 self.sqlgen = SQLGenerator() |
298 self.sqlgen = SQLGenerator() |
299 |
299 |