245 print '-> database for instance %s initialized.' % config.appid |
245 print '-> database for instance %s initialized.' % config.appid |
246 |
246 |
247 |
247 |
248 def initialize_schema(config, schema, mhandler, event='create'): |
248 def initialize_schema(config, schema, mhandler, event='create'): |
249 from cubicweb.server.schemaserial import serialize_schema |
249 from cubicweb.server.schemaserial import serialize_schema |
250 from cubicweb.server.session import hooks_control |
|
251 session = mhandler.session |
250 session = mhandler.session |
252 cubes = config.cubes() |
251 cubes = config.cubes() |
253 # deactivate every hooks but those responsible to set metadata |
252 # deactivate every hooks but those responsible to set metadata |
254 # so, NO INTEGRITY CHECKS are done, to have quicker db creation. |
253 # so, NO INTEGRITY CHECKS are done, to have quicker db creation. |
255 # Active integrity is kept else we may pb such as two default |
254 # Active integrity is kept else we may pb such as two default |
256 # workflows for one entity type. |
255 # workflows for one entity type. |
257 with hooks_control(session, session.HOOKS_DENY_ALL, 'metadata', |
256 with session.deny_all_hooks_but('metadata', 'activeintegrity'): |
258 'activeintegrity'): |
|
259 # execute cubicweb's pre<event> script |
257 # execute cubicweb's pre<event> script |
260 mhandler.cmd_exec_event_script('pre%s' % event) |
258 mhandler.cmd_exec_event_script('pre%s' % event) |
261 # execute cubes pre<event> script if any |
259 # execute cubes pre<event> script if any |
262 for cube in reversed(cubes): |
260 for cube in reversed(cubes): |
263 mhandler.cmd_exec_event_script('pre%s' % event, cube) |
261 mhandler.cmd_exec_event_script('pre%s' % event, cube) |