def upgrade(engine): schema = ControlledSchema(engine, self.repo_path) changeset = schema.changeset(None) for version, change in changeset: log.msg('migrating schema version %s -> %d' % (version, version + 1)) schema.runchange(version, change, 1)
def get_migration_files(host, repo, **kw): engine = kw['engine'] try: schema = ControlledSchema(engine, repo) except DatabaseNotControlledError: ControlledSchema.create(engine, repo) schema = ControlledSchema(engine, repo) changeset = schema.changeset() scripts = [] for ver_num, script in changeset.items(): needs = None if isinstance(script, PythonScript): needs = (script.module.needs if hasattr(script.module, 'needs') else None) elif isinstance(script, SqlScript): with open(script.path) as f: first_line = f.readline() if first_line.startswith('-- needs: '): needs = tuple( map( tuple, loads( first_line.strip('\n').replace( '-- needs: ', '')))) scripts.append((repo, ver_num, script, needs)) scripts.sort() return scripts
def upgrade(engine): schema = ControlledSchema(engine, self.repo_path) changeset = schema.changeset(None) with sautils.withoutSqliteForeignKeys(engine): for version, change in changeset: log.msg('migrating schema version %s -> %d' % (version, version + 1)) schema.runchange(version, change, 1)