# HG changeset patch # User Thomas De Schampheleire # Date 1525204743 -7200 # Node ID 6e270cedc8aa16f5c7e22fbf679f36fbdc4cd292 # Parent 6e75963503cc53f22787f6a8ca14a608f9b23c40 setup-db: perform an initial repository scan as stated by the docs (Issue #302) The documentation, as well as the prompt text inside setup-db itself, states that the repository root location will be scanned automatically for existing repositories. However, this is not actually the case. Only exception is when the 'initial_repo_scan' is set to True in the ini file; in that case the scan is done on each start of Kallithea. Add the required repo scan logic at the end of setup-db, after setting up the application completely (the database has only just been set up). The app setup code from BasePasterCommand is duplicated - this command doesn't fit in and need to run both before and after database creation. The scan call from kallithea/config/app_cfg.py is also duplicated - that will be removed next. diff -r 6e75963503cc -r 6e270cedc8aa kallithea/lib/paster_commands/setup_db.py --- a/kallithea/lib/paster_commands/setup_db.py Mon Apr 23 22:06:37 2018 +0200 +++ b/kallithea/lib/paster_commands/setup_db.py Tue May 01 21:59:03 2018 +0200 @@ -23,6 +23,7 @@ import sys import paste.deploy +import kallithea from kallithea.lib.db_manage import DbManage from kallithea.lib.paster_commands.common import BasePasterCommand from kallithea.model.meta import Session @@ -103,4 +104,14 @@ dbmanage.populate_default_permissions() Session().commit() + # initial repository scan + kallithea.config.middleware.make_app_without_logging( + self.config.global_conf, **self.config.local_conf) + added, _ = kallithea.lib.utils.repo2db_mapper(kallithea.model.scm.ScmModel().repo_scan()) + if added: + print 'Initial repository scan: added following repositories:' + print '\t','\n\t'.join(added) + else: + print 'Initial repository scan: no repositories found.' + print 'Database set up successfully.'