diff -r aca6a2c357fd -r 747e423093fc server/serverctl.py --- a/server/serverctl.py Fri Aug 20 08:21:15 2010 +0200 +++ b/server/serverctl.py Fri Aug 20 08:29:48 2010 +0200 @@ -865,6 +865,34 @@ mih.cmd_synchronize_schema() +class CheckMappingCommand(Command): + """Check content of the mapping file of an external source. + + The mapping is checked against the instance's schema, searching for + inconsistencies or stuff you may have forgotten. It's higly recommanded to + run it when you setup a multi-sources instance. + + + the identifier of the instance. + + + the mapping file to check. + """ + name = 'check-mapping' + arguments = ' ' + min_args = max_args = 2 + + def run(self, args): + from cubicweb.server.checkintegrity import check_mapping + from cubicweb.server.sources.pyrorql import load_mapping_file + appid = pop_arg(args, 1, msg='No instance specified !') + mappingfile = pop_arg(args, msg='No mapping file specified !') + config = ServerConfiguration.config_for(appid) + config.quick_start = True + mih = config.migration_handler(connect=False, verbosity=1) + repo = mih.repo_connect() # necessary to get cubes + checkintegrity(config.load_schema(), load_mapping_file(mappingfile)) + register_commands( (CreateInstanceDBCommand, InitInstanceCommand, GrantUserOnInstanceCommand, @@ -876,4 +904,5 @@ CheckRepositoryCommand, RebuildFTICommand, SynchronizeInstanceSchemaCommand, + CheckMappingCommand, ) )