diff --git a/runbot/models/build_config.py b/runbot/models/build_config.py index 4294d977..2187ef79 100644 --- a/runbot/models/build_config.py +++ b/runbot/models/build_config.py @@ -725,7 +725,9 @@ class ConfigStep(models.Model): migrate_cmd += ['-d', migrate_db_name] migrate_cmd += ['--stop-after-init'] migrate_cmd += ['--max-cron-threads=0'] - # migrate_cmd += ['--upgrades-paths', '/%s' % migration_scripts] upgrades-paths is broken, ln is created automatically in sources + migration_scripts = ','.join([repo.name + repo.upgrade_paths.replace(' ', '') for repo in target_commit_ids.mapped('repo_id') if repo.upgrade_paths]) + if migration_scripts: + migrate_cmd += ['--upgrades-paths', migration_scripts] build._log('run', 'Start migration build %s' % build.dest) timeout = self.cpu_limit diff --git a/runbot/models/commit.py b/runbot/models/commit.py index 3bce09d0..c33ec964 100644 --- a/runbot/models/commit.py +++ b/runbot/models/commit.py @@ -104,17 +104,6 @@ class Commit(models.Model): shutil.rmtree(export_path) raise RunbotException("Apply patch failed for %s...%s with error code %s+%s. (%s)" % (export_sha, self.name, p1.returncode, p2.returncode, message)) - # migration scripts link if necessary - icp = self.env['ir.config_parameter'] - ln_param = icp.get_param('runbot_migration_ln', default='') - migration_repo_id = int(icp.get_param('runbot_migration_repo_id', default=0)) - if ln_param and migration_repo_id and self.repo_id.server_files: - scripts_dir = self.env['runbot.repo'].browse(migration_repo_id).name - try: - os.symlink('/data/build/%s' % scripts_dir, self._source_path(ln_param)) - except FileNotFoundError: - _logger.warning('Impossible to create migration symlink') - return export_path def read_source(self, file, mode='r'): diff --git a/runbot/models/repo.py b/runbot/models/repo.py index 390fea59..629c950e 100644 --- a/runbot/models/repo.py +++ b/runbot/models/repo.py @@ -284,6 +284,7 @@ class Repo(models.Model): server_files = fields.Char('Server files', help='Comma separated list of possible server files', tracking=True) # odoo-bin,openerp-server,openerp-server.py manifest_files = fields.Char('Manifest files', help='Comma separated list of possible manifest files', default='__manifest__.py', tracking=True) addons_paths = fields.Char('Addons paths', help='Comma separated list of possible addons path', default='', tracking=True) + upgrade_paths = fields.Char('Upgrade paths', help='Comma separated list of possible upgrade path', default='', tracking=True) sequence = fields.Integer('Sequence', tracking=True) path = fields.Char(compute='_get_path', string='Directory', readonly=True) diff --git a/runbot/views/repo_views.xml b/runbot/views/repo_views.xml index 9b3a7297..5b768a94 100644 --- a/runbot/views/repo_views.xml +++ b/runbot/views/repo_views.xml @@ -116,6 +116,7 @@ +