diff --git a/data/migrations/dba_operator.py b/data/migrations/dba_operator.py new file mode 100644 index 000000000..be653f1bf --- /dev/null +++ b/data/migrations/dba_operator.py @@ -0,0 +1,150 @@ +""" DBA Operator Migration Generator + +This module supports instrumenting, harvesting, and writing migrations for the +[DBA operator](https://github.com/quay/dba-operator) from the Alembic migrations. +The module generates instances of the `databasemigration` Kubernetes custom resource, +which defines the parameters for synthesizing a Kubernetes job to connect to and +migrate a relational database. +""" + +import yaml +import logging + +from functools import partial, wraps +from alembic.operations import ops + +import sqlalchemy as sa + + +logger = logging.getLogger(__name__) + + +class Migration(object): + def __init__(self): + self._schema_hints = [] + + def dump_yaml_and_reset(self, stream, revision, down_revision): + migration_object = { + "apiVersion": "dbaoperator.app-sre.redhat.com/v1alpha1", + "kind": "DatabaseMigration", + "metadata": {"name": revision,}, + "spec": { + "previous": down_revision, + "migrationContainerSpec": { + "name": revision, + "image": "quay.io/quay/quay", + "command": ["/quay-registry/quay-entrypoint.sh", "migrate", revision,], + }, + "schemaHints": self._schema_hints, + }, + } + yaml.dump(migration_object, stream) + self._schema_hints = [] + + def add_hints_from_ops(self, directive): + for op in directive.ops: + if isinstance(op, ops.ModifyTableOps): + for subop in op.ops: + if isinstance(subop, ops.AddColumnOp): + self.hint_add_column(subop.table_name, subop.column) + elif isinstance(subop, ops.CreateIndexOp): + self.hint_create_index( + subop.table_name, subop.index_name, subop.columns, subop.unique, + ) + elif isinstance(subop, ops.DropIndexOp): + self.hint_drop_index(subop.index_name, subop.table_name) + else: + logger.debug("Skipping migration operation: %s", subop.__class__) + elif isinstance(op, ops.DropTableOp): + self.hint_drop_table(op.table_name) + elif isinstance(op, ops.CreateTableOp): + self.hint_create_table(op.table_name, *op.columns) + else: + logger.debug("Skipping migration operation: %s", op.__class__) + + def _format_column_hint(self, column): + return { + "name": column.name, + "nullable": column.nullable, + } + + def _format_column_list_hint(self, columns): + return [ + self._format_column_hint(column) for column in columns if isinstance(column, sa.Column) + ] + + def hint_create_table(self, table_name, *columns, **kwargs): + self._schema_hints.append( + { + "operation": "createTable", + "table": table_name, + "columns": self._format_column_list_hint(columns), + } + ) + + def hint_drop_table(self, table_name, **kwargs): + self._schema_hints.append( + {"operation": "dropTable", "table": table_name,} + ) + + def hint_add_column(self, table_name, column, *args, **kwargs): + self._schema_hints.append( + { + "operation": "addColumn", + "table": table_name, + "columns": [self._format_column_hint(column)], + } + ) + + def hint_create_index(self, table_name, index_name, columns, unique=False, **kwargs): + self._schema_hints.append( + { + "operation": "createIndex", + "table": table_name, + "indexType": "unique" if unique else "index", + "indexName": index_name, + "columns": self._format_column_list_hint(columns), + } + ) + + def hint_drop_index(self, index_name, table_name, **kwargs): + self._schema_hints.append( + {"operation": "dropIndex", "table": table_name, "indexName": index_name,} + ) + + +class OpLogger(object): + def __init__(self, delegate_module, migration): + self._delegate_module = delegate_module + + self._collectors = { + "add_column": partial(migration.hint_add_column), + "create_table": partial(migration.hint_create_table), + "drop_table": partial(migration.hint_drop_table), + "create_index": partial(migration.hint_create_index), + "drop_index": partial(migration.hint_drop_index), + } + + def __getattr__(self, attr_name): + # Will raise proper attribute error + maybe_callable = self._delegate_module.__dict__[attr_name] + if callable(maybe_callable) and attr_name in self._collectors: + # Build a callable which when executed places the request + # onto a queue + collector = self._collectors[attr_name] + + @wraps(maybe_callable) + def wrapped_method(*args, **kwargs): + result = maybe_callable(*args, **kwargs) + collector(*args, **kwargs) + return result + + return wrapped_method + return maybe_callable + + +def _quoted_string_representer(dumper, data): + return dumper.represent_scalar("tag:yaml.org,2002:str", str(data)) + + +yaml.add_representer(sa.sql.elements.quoted_name, _quoted_string_representer) diff --git a/data/migrations/dba_operator/0cf50323c78b-databasemigration.yaml b/data/migrations/dba_operator/0cf50323c78b-databasemigration.yaml new file mode 100644 index 000000000..9a7cd1a23 --- /dev/null +++ b/data/migrations/dba_operator/0cf50323c78b-databasemigration.yaml @@ -0,0 +1,21 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 0cf50323c78b +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 0cf50323c78b + image: quay.io/quay/quay + name: 0cf50323c78b + previous: 87fbbc224f10 + schemaHints: + - columns: + - name: creation_date + nullable: true + operation: addColumn + table: user diff --git a/data/migrations/dba_operator/10f45ee2310b-databasemigration.yaml b/data/migrations/dba_operator/10f45ee2310b-databasemigration.yaml new file mode 100644 index 000000000..c400e734a --- /dev/null +++ b/data/migrations/dba_operator/10f45ee2310b-databasemigration.yaml @@ -0,0 +1,142 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 10f45ee2310b +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 10f45ee2310b + image: quay.io/quay/quay + name: 10f45ee2310b + previous: 13411de1c0ff + schemaHints: + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: tagkind + - columns: [] + indexName: tagkind + indexType: unique + operation: createIndex + table: tagkind_name + - columns: + - name: id + nullable: false + - name: repository_id + nullable: false + - name: manifest_id + nullable: false + - name: child_manifest_id + nullable: false + operation: createTable + table: manifestchild + - columns: [] + indexName: manifestchild + indexType: index + operation: createIndex + table: manifestchild_child_manifest_id + - columns: [] + indexName: manifestchild + indexType: index + operation: createIndex + table: manifestchild_manifest_id + - columns: [] + indexName: manifestchild + indexType: unique + operation: createIndex + table: manifestchild_manifest_id_child_manifest_id + - columns: [] + indexName: manifestchild + indexType: index + operation: createIndex + table: manifestchild_repository_id + - columns: [] + indexName: manifestchild + indexType: index + operation: createIndex + table: manifestchild_repository_id_child_manifest_id + - columns: [] + indexName: manifestchild + indexType: index + operation: createIndex + table: manifestchild_repository_id_manifest_id + - columns: [] + indexName: manifestchild + indexType: index + operation: createIndex + table: manifestchild_repository_id_manifest_id_child_manifest_id + - columns: + - name: id + nullable: false + - name: name + nullable: false + - name: repository_id + nullable: false + - name: manifest_id + nullable: true + - name: lifetime_start_ms + nullable: false + - name: lifetime_end_ms + nullable: true + - name: hidden + nullable: false + - name: reversion + nullable: false + - name: tag_kind_id + nullable: false + - name: linked_tag_id + nullable: true + operation: createTable + table: tag + - columns: [] + indexName: tag + indexType: index + operation: createIndex + table: tag_lifetime_end_ms + - columns: [] + indexName: tag + indexType: index + operation: createIndex + table: tag_linked_tag_id + - columns: [] + indexName: tag + indexType: index + operation: createIndex + table: tag_manifest_id + - columns: [] + indexName: tag + indexType: index + operation: createIndex + table: tag_repository_id + - columns: [] + indexName: tag + indexType: index + operation: createIndex + table: tag_repository_id_name + - columns: [] + indexName: tag + indexType: index + operation: createIndex + table: tag_repository_id_name_hidden + - columns: [] + indexName: tag + indexType: unique + operation: createIndex + table: tag_repository_id_name_lifetime_end_ms + - columns: [] + indexName: tag + indexType: index + operation: createIndex + table: tag_repository_id_name_tag_kind_id + - columns: [] + indexName: tag + indexType: index + operation: createIndex + table: tag_tag_kind_id diff --git a/data/migrations/dba_operator/13411de1c0ff-databasemigration.yaml b/data/migrations/dba_operator/13411de1c0ff-databasemigration.yaml new file mode 100644 index 000000000..a7ca008d3 --- /dev/null +++ b/data/migrations/dba_operator/13411de1c0ff-databasemigration.yaml @@ -0,0 +1,44 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 13411de1c0ff +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 13411de1c0ff + image: quay.io/quay/quay + name: 13411de1c0ff + previous: 654e6df88b71 + schemaHints: + - operation: dropTable + table: tagmanifesttomanifest + - columns: + - name: id + nullable: false + - name: tag_manifest_id + nullable: false + - name: manifest_id + nullable: false + - name: broken + nullable: false + operation: createTable + table: tagmanifesttomanifest + - columns: [] + indexName: tagmanifesttomanifest + indexType: index + operation: createIndex + table: tagmanifesttomanifest_broken + - columns: [] + indexName: tagmanifesttomanifest + indexType: index + operation: createIndex + table: tagmanifesttomanifest_manifest_id + - columns: [] + indexName: tagmanifesttomanifest + indexType: unique + operation: createIndex + table: tagmanifesttomanifest_tag_manifest_id diff --git a/data/migrations/dba_operator/152bb29a1bb3-databasemigration.yaml b/data/migrations/dba_operator/152bb29a1bb3-databasemigration.yaml new file mode 100644 index 000000000..0992ca38d --- /dev/null +++ b/data/migrations/dba_operator/152bb29a1bb3-databasemigration.yaml @@ -0,0 +1,21 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 152bb29a1bb3 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 152bb29a1bb3 + image: quay.io/quay/quay + name: 152bb29a1bb3 + previous: cbc8177760d9 + schemaHints: + - columns: + - name: maximum_queued_builds_count + nullable: true + operation: addColumn + table: user diff --git a/data/migrations/dba_operator/152edccba18c-databasemigration.yaml b/data/migrations/dba_operator/152edccba18c-databasemigration.yaml new file mode 100644 index 000000000..0223af002 --- /dev/null +++ b/data/migrations/dba_operator/152edccba18c-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 152edccba18c +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 152edccba18c + image: quay.io/quay/quay + name: 152edccba18c + previous: c91c564aad34 + schemaHints: [] diff --git a/data/migrations/dba_operator/1783530bee68-databasemigration.yaml b/data/migrations/dba_operator/1783530bee68-databasemigration.yaml new file mode 100644 index 000000000..9db09e183 --- /dev/null +++ b/data/migrations/dba_operator/1783530bee68-databasemigration.yaml @@ -0,0 +1,80 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 1783530bee68 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 1783530bee68 + image: quay.io/quay/quay + name: 1783530bee68 + previous: 5b7503aada1b + schemaHints: + - columns: + - name: id + nullable: false + - name: kind_id + nullable: false + - name: account_id + nullable: false + - name: performer_id + nullable: true + - name: repository_id + nullable: true + - name: datetime + nullable: false + - name: ip + nullable: true + - name: metadata_json + nullable: false + operation: createTable + table: logentry2 + - columns: [] + indexName: logentry2 + indexType: index + operation: createIndex + table: logentry2_account_id + - columns: [] + indexName: logentry2 + indexType: index + operation: createIndex + table: logentry2_account_id_datetime + - columns: [] + indexName: logentry2 + indexType: index + operation: createIndex + table: logentry2_datetime + - columns: [] + indexName: logentry2 + indexType: index + operation: createIndex + table: logentry2_kind_id + - columns: [] + indexName: logentry2 + indexType: index + operation: createIndex + table: logentry2_performer_id + - columns: [] + indexName: logentry2 + indexType: index + operation: createIndex + table: logentry2_performer_id_datetime + - columns: [] + indexName: logentry2 + indexType: index + operation: createIndex + table: logentry2_repository_id + - columns: [] + indexName: logentry2 + indexType: index + operation: createIndex + table: logentry2_repository_id_datetime + - columns: [] + indexName: logentry2 + indexType: index + operation: createIndex + table: logentry2_repository_id_datetime_kind_id diff --git a/data/migrations/dba_operator/17aff2e1354e-databasemigration.yaml b/data/migrations/dba_operator/17aff2e1354e-databasemigration.yaml new file mode 100644 index 000000000..458859b50 --- /dev/null +++ b/data/migrations/dba_operator/17aff2e1354e-databasemigration.yaml @@ -0,0 +1,26 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 17aff2e1354e +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 17aff2e1354e + image: quay.io/quay/quay + name: 17aff2e1354e + previous: 61cadbacb9fc + schemaHints: + - columns: + - name: successive_failure_count + nullable: false + operation: addColumn + table: repositorybuildtrigger + - columns: + - name: successive_internal_error_count + nullable: false + operation: addColumn + table: repositorybuildtrigger diff --git a/data/migrations/dba_operator/224ce4c72c2f-databasemigration.yaml b/data/migrations/dba_operator/224ce4c72c2f-databasemigration.yaml new file mode 100644 index 000000000..1a3990b70 --- /dev/null +++ b/data/migrations/dba_operator/224ce4c72c2f-databasemigration.yaml @@ -0,0 +1,26 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 224ce4c72c2f +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 224ce4c72c2f + image: quay.io/quay/quay + name: 224ce4c72c2f + previous: b547bc139ad8 + schemaHints: + - columns: + - name: last_accessed + nullable: true + operation: addColumn + table: user + - columns: [] + indexName: user + indexType: index + operation: createIndex + table: user_last_accessed diff --git a/data/migrations/dba_operator/34c8ef052ec9-databasemigration.yaml b/data/migrations/dba_operator/34c8ef052ec9-databasemigration.yaml new file mode 100644 index 000000000..e0855fcfe --- /dev/null +++ b/data/migrations/dba_operator/34c8ef052ec9-databasemigration.yaml @@ -0,0 +1,21 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 34c8ef052ec9 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 34c8ef052ec9 + image: quay.io/quay/quay + name: 34c8ef052ec9 + previous: cc6778199cdb + schemaHints: + - columns: + - name: external_reference + nullable: true + operation: addColumn + table: repomirrorconfig diff --git a/data/migrations/dba_operator/3e8cc74a1e7b-databasemigration.yaml b/data/migrations/dba_operator/3e8cc74a1e7b-databasemigration.yaml new file mode 100644 index 000000000..e8b2c10c9 --- /dev/null +++ b/data/migrations/dba_operator/3e8cc74a1e7b-databasemigration.yaml @@ -0,0 +1,41 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 3e8cc74a1e7b +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 3e8cc74a1e7b + image: quay.io/quay/quay + name: 3e8cc74a1e7b + previous: fc47c1ec019f + schemaHints: + - columns: + - name: media_type_id + nullable: false + operation: addColumn + table: messages + - columns: + - name: severity + nullable: false + operation: addColumn + table: messages + - columns: [] + indexName: messages + indexType: index + operation: createIndex + table: messages_media_type_id + - columns: [] + indexName: messages + indexType: index + operation: createIndex + table: messages_severity + - columns: [] + indexName: messages + indexType: index + operation: createIndex + table: messages_uuid diff --git a/data/migrations/dba_operator/45fd8b9869d4-databasemigration.yaml b/data/migrations/dba_operator/45fd8b9869d4-databasemigration.yaml new file mode 100644 index 000000000..c56b8fdcb --- /dev/null +++ b/data/migrations/dba_operator/45fd8b9869d4-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 45fd8b9869d4 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 45fd8b9869d4 + image: quay.io/quay/quay + name: 45fd8b9869d4 + previous: 94836b099894 + schemaHints: [] diff --git a/data/migrations/dba_operator/481623ba00ba-databasemigration.yaml b/data/migrations/dba_operator/481623ba00ba-databasemigration.yaml new file mode 100644 index 000000000..0d0cf40ea --- /dev/null +++ b/data/migrations/dba_operator/481623ba00ba-databasemigration.yaml @@ -0,0 +1,21 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 481623ba00ba +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 481623ba00ba + image: quay.io/quay/quay + name: 481623ba00ba + previous: b9045731c4de + schemaHints: + - columns: [] + indexName: repositorybuild + indexType: index + operation: createIndex + table: repositorybuild_logs_archived diff --git a/data/migrations/dba_operator/49e1138ed12d-databasemigration.yaml b/data/migrations/dba_operator/49e1138ed12d-databasemigration.yaml new file mode 100644 index 000000000..026193a49 --- /dev/null +++ b/data/migrations/dba_operator/49e1138ed12d-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 49e1138ed12d +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 49e1138ed12d + image: quay.io/quay/quay + name: 49e1138ed12d + previous: 703298a825c2 + schemaHints: [] diff --git a/data/migrations/dba_operator/4fd6b8463eb2-databasemigration.yaml b/data/migrations/dba_operator/4fd6b8463eb2-databasemigration.yaml new file mode 100644 index 000000000..42677f329 --- /dev/null +++ b/data/migrations/dba_operator/4fd6b8463eb2-databasemigration.yaml @@ -0,0 +1,44 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 4fd6b8463eb2 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 4fd6b8463eb2 + image: quay.io/quay/quay + name: 4fd6b8463eb2 + previous: 34c8ef052ec9 + schemaHints: + - columns: + - name: id + nullable: false + - name: repository_id + nullable: false + - name: marked + nullable: false + - name: original_name + nullable: false + - name: queue_id + nullable: true + operation: createTable + table: deletedrepository + - columns: [] + indexName: deletedrepository + indexType: index + operation: createIndex + table: deletedrepository_original_name + - columns: [] + indexName: deletedrepository + indexType: index + operation: createIndex + table: deletedrepository_queue_id + - columns: [] + indexName: deletedrepository + indexType: unique + operation: createIndex + table: deletedrepository_repository_id diff --git a/data/migrations/dba_operator/5248ddf35167-databasemigration.yaml b/data/migrations/dba_operator/5248ddf35167-databasemigration.yaml new file mode 100644 index 000000000..2887bbd5c --- /dev/null +++ b/data/migrations/dba_operator/5248ddf35167-databasemigration.yaml @@ -0,0 +1,141 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 5248ddf35167 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 5248ddf35167 + image: quay.io/quay/quay + name: 5248ddf35167 + previous: b918abdbee43 + schemaHints: + - columns: + - name: id + nullable: false + - name: uuid + nullable: false + - name: repository_id + nullable: false + - name: creation_date + nullable: false + - name: rule_type + nullable: false + - name: rule_value + nullable: false + - name: left_child_id + nullable: true + - name: right_child_id + nullable: true + operation: createTable + table: repomirrorrule + - columns: [] + indexName: repomirrorrule + indexType: index + operation: createIndex + table: repomirrorrule_left_child_id + - columns: [] + indexName: repomirrorrule + indexType: index + operation: createIndex + table: repomirrorrule_repository_id + - columns: [] + indexName: repomirrorrule + indexType: index + operation: createIndex + table: repomirrorrule_right_child_id + - columns: [] + indexName: repomirrorrule + indexType: index + operation: createIndex + table: repomirrorrule_rule_type + - columns: [] + indexName: repomirrorrule + indexType: unique + operation: createIndex + table: repomirrorrule_uuid + - columns: + - name: id + nullable: false + - name: repository_id + nullable: false + - name: creation_date + nullable: false + - name: is_enabled + nullable: false + - name: mirror_type + nullable: false + - name: internal_robot_id + nullable: false + - name: external_registry + nullable: false + - name: external_namespace + nullable: false + - name: external_repository + nullable: false + - name: external_registry_username + nullable: true + - name: external_registry_password + nullable: true + - name: external_registry_config + nullable: false + - name: sync_interval + nullable: false + - name: sync_start_date + nullable: true + - name: sync_expiration_date + nullable: true + - name: sync_retries_remaining + nullable: false + - name: sync_status + nullable: false + - name: sync_transaction_id + nullable: true + - name: root_rule_id + nullable: false + operation: createTable + table: repomirrorconfig + - columns: [] + indexName: repomirrorconfig + indexType: index + operation: createIndex + table: repomirrorconfig_mirror_type + - columns: [] + indexName: repomirrorconfig + indexType: unique + operation: createIndex + table: repomirrorconfig_repository_id + - columns: [] + indexName: repomirrorconfig + indexType: index + operation: createIndex + table: repomirrorconfig_root_rule_id + - columns: [] + indexName: repomirrorconfig + indexType: index + operation: createIndex + table: repomirrorconfig_sync_status + - columns: [] + indexName: repomirrorconfig + indexType: index + operation: createIndex + table: repomirrorconfig_sync_transaction_id + - columns: [] + indexName: repomirrorconfig + indexType: index + operation: createIndex + table: repomirrorconfig_internal_robot_id + - columns: + - name: state + nullable: false + operation: addColumn + table: !!python/unicode 'repository' + - columns: [] + indexName: repository + indexType: index + operation: createIndex + table: repository_state diff --git a/data/migrations/dba_operator/53e2ac668296-databasemigration.yaml b/data/migrations/dba_operator/53e2ac668296-databasemigration.yaml new file mode 100644 index 000000000..b6c8b0cfe --- /dev/null +++ b/data/migrations/dba_operator/53e2ac668296-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 53e2ac668296 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 53e2ac668296 + image: quay.io/quay/quay + name: 53e2ac668296 + previous: ed01e313d3cb + schemaHints: [] diff --git a/data/migrations/dba_operator/54492a68a3cf-databasemigration.yaml b/data/migrations/dba_operator/54492a68a3cf-databasemigration.yaml new file mode 100644 index 000000000..bb43a138f --- /dev/null +++ b/data/migrations/dba_operator/54492a68a3cf-databasemigration.yaml @@ -0,0 +1,46 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 54492a68a3cf +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 54492a68a3cf + image: quay.io/quay/quay + name: 54492a68a3cf + previous: c00a1f15968b + schemaHints: + - columns: + - name: id + nullable: false + - name: namespace_id + nullable: false + - name: added + nullable: false + - name: description + nullable: false + - name: unstructured_json + nullable: false + - name: restricted_region_iso_code + nullable: false + operation: createTable + table: namespacegeorestriction + - columns: [] + indexName: namespacegeorestriction + indexType: index + operation: createIndex + table: namespacegeorestriction_namespace_id + - columns: [] + indexName: namespacegeorestriction + indexType: unique + operation: createIndex + table: namespacegeorestriction_namespace_id_restricted_region_iso_code + - columns: [] + indexName: namespacegeorestriction + indexType: index + operation: createIndex + table: namespacegeorestriction_restricted_region_iso_code diff --git a/data/migrations/dba_operator/5b7503aada1b-databasemigration.yaml b/data/migrations/dba_operator/5b7503aada1b-databasemigration.yaml new file mode 100644 index 000000000..d826321c5 --- /dev/null +++ b/data/migrations/dba_operator/5b7503aada1b-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 5b7503aada1b +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 5b7503aada1b + image: quay.io/quay/quay + name: 5b7503aada1b + previous: 224ce4c72c2f + schemaHints: [] diff --git a/data/migrations/dba_operator/5cbbfc95bac7-databasemigration.yaml b/data/migrations/dba_operator/5cbbfc95bac7-databasemigration.yaml new file mode 100644 index 000000000..fd2ae1613 --- /dev/null +++ b/data/migrations/dba_operator/5cbbfc95bac7-databasemigration.yaml @@ -0,0 +1,32 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 5cbbfc95bac7 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 5cbbfc95bac7 + image: quay.io/quay/quay + name: 5cbbfc95bac7 + previous: 1783530bee68 + schemaHints: + - operation: dropTable + table: derivedimage + - operation: dropTable + table: manifestlabel + - operation: dropTable + table: blobplacementlocationpreference + - operation: dropTable + table: blobuploading + - operation: dropTable + table: bittorrentpieces + - operation: dropTable + table: manifestlayerdockerv1 + - operation: dropTable + table: manifestlayerscan + - operation: dropTable + table: manifestlayer diff --git a/data/migrations/dba_operator/5d463ea1e8a8-databasemigration.yaml b/data/migrations/dba_operator/5d463ea1e8a8-databasemigration.yaml new file mode 100644 index 000000000..8949fe23c --- /dev/null +++ b/data/migrations/dba_operator/5d463ea1e8a8-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 5d463ea1e8a8 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 5d463ea1e8a8 + image: quay.io/quay/quay + name: 5d463ea1e8a8 + previous: 610320e9dacf + schemaHints: [] diff --git a/data/migrations/dba_operator/610320e9dacf-databasemigration.yaml b/data/migrations/dba_operator/610320e9dacf-databasemigration.yaml new file mode 100644 index 000000000..b9ef8247e --- /dev/null +++ b/data/migrations/dba_operator/610320e9dacf-databasemigration.yaml @@ -0,0 +1,262 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 610320e9dacf +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 610320e9dacf + image: quay.io/quay/quay + name: 610320e9dacf + previous: 5cbbfc95bac7 + schemaHints: + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: apprblobplacementlocation + - columns: [] + indexName: apprblobplacementlocation + indexType: unique + operation: createIndex + table: apprblobplacementlocation_name + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: apprtagkind + - columns: [] + indexName: apprtagkind + indexType: unique + operation: createIndex + table: apprtagkind_name + - columns: + - name: id + nullable: false + - name: digest + nullable: false + - name: media_type_id + nullable: false + - name: size + nullable: false + - name: uncompressed_size + nullable: true + operation: createTable + table: apprblob + - columns: [] + indexName: apprblob + indexType: unique + operation: createIndex + table: apprblob_digest + - columns: [] + indexName: apprblob + indexType: index + operation: createIndex + table: apprblob_media_type_id + - columns: + - name: id + nullable: false + - name: digest + nullable: false + - name: media_type_id + nullable: false + - name: manifest_json + nullable: false + operation: createTable + table: apprmanifest + - columns: [] + indexName: apprmanifest + indexType: unique + operation: createIndex + table: apprmanifest_digest + - columns: [] + indexName: apprmanifest + indexType: index + operation: createIndex + table: apprmanifest_media_type_id + - columns: + - name: id + nullable: false + - name: digest + nullable: false + - name: manifest_list_json + nullable: false + - name: schema_version + nullable: false + - name: media_type_id + nullable: false + operation: createTable + table: apprmanifestlist + - columns: [] + indexName: apprmanifestlist + indexType: unique + operation: createIndex + table: apprmanifestlist_digest + - columns: [] + indexName: apprmanifestlist + indexType: index + operation: createIndex + table: apprmanifestlist_media_type_id + - columns: + - name: id + nullable: false + - name: blob_id + nullable: false + - name: location_id + nullable: false + operation: createTable + table: apprblobplacement + - columns: [] + indexName: apprblobplacement + indexType: index + operation: createIndex + table: apprblobplacement_blob_id + - columns: [] + indexName: apprblobplacement + indexType: unique + operation: createIndex + table: apprblobplacement_blob_id_location_id + - columns: [] + indexName: apprblobplacement + indexType: index + operation: createIndex + table: apprblobplacement_location_id + - columns: + - name: id + nullable: false + - name: manifest_id + nullable: false + - name: blob_id + nullable: false + operation: createTable + table: apprmanifestblob + - columns: [] + indexName: apprmanifestblob + indexType: index + operation: createIndex + table: apprmanifestblob_blob_id + - columns: [] + indexName: apprmanifestblob + indexType: index + operation: createIndex + table: apprmanifestblob_manifest_id + - columns: [] + indexName: apprmanifestblob + indexType: unique + operation: createIndex + table: apprmanifestblob_manifest_id_blob_id + - columns: + - name: id + nullable: false + - name: manifest_list_id + nullable: false + - name: manifest_id + nullable: false + - name: operating_system + nullable: true + - name: architecture + nullable: true + - name: platform_json + nullable: true + - name: media_type_id + nullable: false + operation: createTable + table: apprmanifestlistmanifest + - columns: [] + indexName: apprmanifestlistmanifest + indexType: index + operation: createIndex + table: apprmanifestlistmanifest_manifest_id + - columns: [] + indexName: apprmanifestlistmanifest + indexType: index + operation: createIndex + table: apprmanifestlistmanifest_manifest_list_id + - columns: [] + indexName: apprmanifestlistmanifest + indexType: index + operation: createIndex + table: apprmanifestlistmanifest_manifest_list_id_media_type_id + - columns: [] + indexName: apprmanifestlistmanifest + indexType: index + operation: createIndex + table: apprmanifestlistmanifest_manifest_list_id_operating_system_arch + - columns: [] + indexName: apprmanifestlistmanifest + indexType: index + operation: createIndex + table: apprmanifestlistmanifest_media_type_id + - columns: + - name: id + nullable: false + - name: name + nullable: false + - name: repository_id + nullable: false + - name: manifest_list_id + nullable: true + - name: lifetime_start + nullable: false + - name: lifetime_end + nullable: true + - name: hidden + nullable: false + - name: reverted + nullable: false + - name: protected + nullable: false + - name: tag_kind_id + nullable: false + - name: linked_tag_id + nullable: true + operation: createTable + table: apprtag + - columns: [] + indexName: apprtag + indexType: index + operation: createIndex + table: apprtag_lifetime_end + - columns: [] + indexName: apprtag + indexType: index + operation: createIndex + table: apprtag_linked_tag_id + - columns: [] + indexName: apprtag + indexType: index + operation: createIndex + table: apprtag_manifest_list_id + - columns: [] + indexName: apprtag + indexType: index + operation: createIndex + table: apprtag_repository_id + - columns: [] + indexName: apprtag + indexType: index + operation: createIndex + table: apprtag_repository_id_name + - columns: [] + indexName: apprtag + indexType: index + operation: createIndex + table: apprtag_repository_id_name_hidden + - columns: [] + indexName: apprtag + indexType: unique + operation: createIndex + table: apprtag_repository_id_name_lifetime_end + - columns: [] + indexName: apprtag + indexType: index + operation: createIndex + table: apprtag_tag_kind_id diff --git a/data/migrations/dba_operator/61cadbacb9fc-databasemigration.yaml b/data/migrations/dba_operator/61cadbacb9fc-databasemigration.yaml new file mode 100644 index 000000000..8509543e2 --- /dev/null +++ b/data/migrations/dba_operator/61cadbacb9fc-databasemigration.yaml @@ -0,0 +1,43 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 61cadbacb9fc +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 61cadbacb9fc + image: quay.io/quay/quay + name: 61cadbacb9fc + previous: b4c2d45bc132 + schemaHints: + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: disablereason + - columns: [] + indexName: disablereason + indexType: unique + operation: createIndex + table: disablereason_name + - columns: + - name: disabled_reason_id + nullable: true + operation: addColumn + table: !!python/unicode 'repositorybuildtrigger' + - columns: + - name: enabled + nullable: false + operation: addColumn + table: !!python/unicode 'repositorybuildtrigger' + - columns: [] + indexName: repositorybuildtrigger + indexType: index + operation: createIndex + table: repositorybuildtrigger_disabled_reason_id diff --git a/data/migrations/dba_operator/654e6df88b71-databasemigration.yaml b/data/migrations/dba_operator/654e6df88b71-databasemigration.yaml new file mode 100644 index 000000000..9ea3ff8de --- /dev/null +++ b/data/migrations/dba_operator/654e6df88b71-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 654e6df88b71 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 654e6df88b71 + image: quay.io/quay/quay + name: 654e6df88b71 + previous: eafdeadcebc7 + schemaHints: [] diff --git a/data/migrations/dba_operator/67f0abd172ae-databasemigration.yaml b/data/migrations/dba_operator/67f0abd172ae-databasemigration.yaml new file mode 100644 index 000000000..c738c3460 --- /dev/null +++ b/data/migrations/dba_operator/67f0abd172ae-databasemigration.yaml @@ -0,0 +1,42 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 67f0abd172ae +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 67f0abd172ae + image: quay.io/quay/quay + name: 67f0abd172ae + previous: 10f45ee2310b + schemaHints: + - columns: + - name: id + nullable: false + - name: repository_id + nullable: false + - name: tag_id + nullable: false + - name: repository_tag_id + nullable: false + operation: createTable + table: tagtorepositorytag + - columns: [] + indexName: tagtorepositorytag + indexType: index + operation: createIndex + table: tagtorepositorytag_repository_id + - columns: [] + indexName: tagtorepositorytag + indexType: unique + operation: createIndex + table: tagtorepositorytag_repository_tag_id + - columns: [] + indexName: tagtorepositorytag + indexType: unique + operation: createIndex + table: tagtorepositorytag_tag_id diff --git a/data/migrations/dba_operator/6c21e2cfb8b6-databasemigration.yaml b/data/migrations/dba_operator/6c21e2cfb8b6-databasemigration.yaml new file mode 100644 index 000000000..d6c11f0f4 --- /dev/null +++ b/data/migrations/dba_operator/6c21e2cfb8b6-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 6c21e2cfb8b6 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 6c21e2cfb8b6 + image: quay.io/quay/quay + name: 6c21e2cfb8b6 + previous: d17c695859ea + schemaHints: [] diff --git a/data/migrations/dba_operator/6c7014e84a5e-databasemigration.yaml b/data/migrations/dba_operator/6c7014e84a5e-databasemigration.yaml new file mode 100644 index 000000000..1788a8dc7 --- /dev/null +++ b/data/migrations/dba_operator/6c7014e84a5e-databasemigration.yaml @@ -0,0 +1,52 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 6c7014e84a5e +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 6c7014e84a5e + image: quay.io/quay/quay + name: 6c7014e84a5e + previous: c156deb8845d + schemaHints: + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: userpromptkind + - columns: [] + indexName: userpromptkind + indexType: index + operation: createIndex + table: userpromptkind_name + - columns: + - name: id + nullable: false + - name: user_id + nullable: false + - name: kind_id + nullable: false + operation: createTable + table: userprompt + - columns: [] + indexName: userprompt + indexType: index + operation: createIndex + table: userprompt_kind_id + - columns: [] + indexName: userprompt + indexType: index + operation: createIndex + table: userprompt_user_id + - columns: [] + indexName: userprompt + indexType: unique + operation: createIndex + table: userprompt_user_id_kind_id diff --git a/data/migrations/dba_operator/6ec8726c0ace-databasemigration.yaml b/data/migrations/dba_operator/6ec8726c0ace-databasemigration.yaml new file mode 100644 index 000000000..83f3d73ac --- /dev/null +++ b/data/migrations/dba_operator/6ec8726c0ace-databasemigration.yaml @@ -0,0 +1,55 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 6ec8726c0ace +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 6ec8726c0ace + image: quay.io/quay/quay + name: 6ec8726c0ace + previous: 54492a68a3cf + schemaHints: + - columns: + - name: id + nullable: false + - name: kind_id + nullable: false + - name: account_id + nullable: false + - name: performer_id + nullable: true + - name: repository_id + nullable: true + - name: datetime + nullable: false + - name: ip + nullable: true + - name: metadata_json + nullable: false + operation: createTable + table: logentry3 + - columns: [] + indexName: logentry3 + indexType: index + operation: createIndex + table: logentry3_account_id_datetime + - columns: [] + indexName: logentry3 + indexType: index + operation: createIndex + table: logentry3_datetime + - columns: [] + indexName: logentry3 + indexType: index + operation: createIndex + table: logentry3_performer_id_datetime + - columns: [] + indexName: logentry3 + indexType: index + operation: createIndex + table: logentry3_repository_id_datetime_kind_id diff --git a/data/migrations/dba_operator/703298a825c2-databasemigration.yaml b/data/migrations/dba_operator/703298a825c2-databasemigration.yaml new file mode 100644 index 000000000..2ef1bf6d4 --- /dev/null +++ b/data/migrations/dba_operator/703298a825c2-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 703298a825c2 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 703298a825c2 + image: quay.io/quay/quay + name: 703298a825c2 + previous: c13c8052f7a6 + schemaHints: [] diff --git a/data/migrations/dba_operator/7367229b38d9-databasemigration.yaml b/data/migrations/dba_operator/7367229b38d9-databasemigration.yaml new file mode 100644 index 000000000..841e6ca87 --- /dev/null +++ b/data/migrations/dba_operator/7367229b38d9-databasemigration.yaml @@ -0,0 +1,55 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 7367229b38d9 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 7367229b38d9 + image: quay.io/quay/quay + name: 7367229b38d9 + previous: d8989249f8f6 + schemaHints: + - columns: + - name: id + nullable: false + - name: user_id + nullable: false + - name: uuid + nullable: false + - name: title + nullable: false + - name: token_code + nullable: false + - name: created + nullable: false + - name: expiration + nullable: true + - name: last_accessed + nullable: true + operation: createTable + table: appspecificauthtoken + - columns: [] + indexName: appspecificauthtoken + indexType: unique + operation: createIndex + table: appspecificauthtoken_token_code + - columns: [] + indexName: appspecificauthtoken + indexType: index + operation: createIndex + table: appspecificauthtoken_user_id + - columns: [] + indexName: appspecificauthtoken + indexType: index + operation: createIndex + table: appspecificauthtoken_user_id_expiration + - columns: [] + indexName: appspecificauthtoken + indexType: index + operation: createIndex + table: appspecificauthtoken_uuid diff --git a/data/migrations/dba_operator/7a525c68eb13-databasemigration.yaml b/data/migrations/dba_operator/7a525c68eb13-databasemigration.yaml new file mode 100644 index 000000000..e15229f88 --- /dev/null +++ b/data/migrations/dba_operator/7a525c68eb13-databasemigration.yaml @@ -0,0 +1,516 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 7a525c68eb13 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 7a525c68eb13 + image: quay.io/quay/quay + name: 7a525c68eb13 + previous: e2894a3a3c19 + schemaHints: + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: tagkind + - columns: [] + indexName: tagkind + indexType: unique + operation: createIndex + table: tagkind_name + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: blobplacementlocation + - columns: [] + indexName: blobplacementlocation + indexType: unique + operation: createIndex + table: blobplacementlocation_name + - columns: + - name: id + nullable: false + - name: digest + nullable: false + - name: media_type_id + nullable: false + - name: size + nullable: false + - name: uncompressed_size + nullable: true + operation: createTable + table: blob + - columns: [] + indexName: blob + indexType: unique + operation: createIndex + table: blob_digest + - columns: [] + indexName: blob + indexType: index + operation: createIndex + table: blob_media_type_id + - columns: + - name: id + nullable: false + - name: user_id + nullable: false + - name: location_id + nullable: false + operation: createTable + table: blobplacementlocationpreference + - columns: [] + indexName: blobplacementlocationpreference + indexType: index + operation: createIndex + table: blobplacementlocationpreference_location_id + - columns: [] + indexName: blobplacementlocationpreference + indexType: index + operation: createIndex + table: blobplacementlocationpreference_user_id + - columns: + - name: id + nullable: false + - name: digest + nullable: false + - name: media_type_id + nullable: false + - name: manifest_json + nullable: false + operation: createTable + table: manifest + - columns: [] + indexName: manifest + indexType: unique + operation: createIndex + table: manifest_digest + - columns: [] + indexName: manifest + indexType: index + operation: createIndex + table: manifest_media_type_id + - columns: + - name: id + nullable: false + - name: digest + nullable: false + - name: manifest_list_json + nullable: false + - name: schema_version + nullable: false + - name: media_type_id + nullable: false + operation: createTable + table: manifestlist + - columns: [] + indexName: manifestlist + indexType: unique + operation: createIndex + table: manifestlist_digest + - columns: [] + indexName: manifestlist + indexType: index + operation: createIndex + table: manifestlist_media_type_id + - columns: + - name: id + nullable: false + - name: blob_id + nullable: false + - name: pieces + nullable: false + - name: piece_length + nullable: false + operation: createTable + table: bittorrentpieces + - columns: [] + indexName: bittorrentpieces + indexType: index + operation: createIndex + table: bittorrentpieces_blob_id + - columns: [] + indexName: bittorrentpieces + indexType: unique + operation: createIndex + table: bittorrentpieces_blob_id_piece_length + - columns: + - name: id + nullable: false + - name: blob_id + nullable: false + - name: location_id + nullable: false + operation: createTable + table: blobplacement + - columns: [] + indexName: blobplacement + indexType: index + operation: createIndex + table: blobplacement_blob_id + - columns: [] + indexName: blobplacement + indexType: unique + operation: createIndex + table: blobplacement_blob_id_location_id + - columns: [] + indexName: blobplacement + indexType: index + operation: createIndex + table: blobplacement_location_id + - columns: + - name: id + nullable: false + - name: uuid + nullable: false + - name: created + nullable: false + - name: repository_id + nullable: false + - name: location_id + nullable: false + - name: byte_count + nullable: false + - name: uncompressed_byte_count + nullable: true + - name: chunk_count + nullable: false + - name: storage_metadata + nullable: true + - name: sha_state + nullable: true + - name: piece_sha_state + nullable: true + - name: piece_hashes + nullable: true + operation: createTable + table: blobuploading + - columns: [] + indexName: blobuploading + indexType: index + operation: createIndex + table: blobuploading_created + - columns: [] + indexName: blobuploading + indexType: index + operation: createIndex + table: blobuploading_location_id + - columns: [] + indexName: blobuploading + indexType: index + operation: createIndex + table: blobuploading_repository_id + - columns: [] + indexName: blobuploading + indexType: unique + operation: createIndex + table: blobuploading_repository_id_uuid + - columns: [] + indexName: blobuploading + indexType: unique + operation: createIndex + table: blobuploading_uuid + - columns: + - name: id + nullable: false + - name: uuid + nullable: false + - name: source_manifest_id + nullable: false + - name: derived_manifest_json + nullable: false + - name: media_type_id + nullable: false + - name: blob_id + nullable: false + - name: uniqueness_hash + nullable: false + - name: signature_blob_id + nullable: true + operation: createTable + table: derivedimage + - columns: [] + indexName: derivedimage + indexType: index + operation: createIndex + table: derivedimage_blob_id + - columns: [] + indexName: derivedimage + indexType: index + operation: createIndex + table: derivedimage_media_type_id + - columns: [] + indexName: derivedimage + indexType: index + operation: createIndex + table: derivedimage_signature_blob_id + - columns: [] + indexName: derivedimage + indexType: index + operation: createIndex + table: derivedimage_source_manifest_id + - columns: [] + indexName: derivedimage + indexType: unique + operation: createIndex + table: derivedimage_source_manifest_id_blob_id + - columns: [] + indexName: derivedimage + indexType: unique + operation: createIndex + table: derivedimage_source_manifest_id_media_type_id_uniqueness_hash + - columns: [] + indexName: derivedimage + indexType: unique + operation: createIndex + table: derivedimage_uniqueness_hash + - columns: [] + indexName: derivedimage + indexType: unique + operation: createIndex + table: derivedimage_uuid + - columns: + - name: id + nullable: false + - name: manifest_id + nullable: false + - name: blob_id + nullable: false + operation: createTable + table: manifestblob + - columns: [] + indexName: manifestblob + indexType: index + operation: createIndex + table: manifestblob_blob_id + - columns: [] + indexName: manifestblob + indexType: index + operation: createIndex + table: manifestblob_manifest_id + - columns: [] + indexName: manifestblob + indexType: unique + operation: createIndex + table: manifestblob_manifest_id_blob_id + - columns: + - name: id + nullable: false + - name: repository_id + nullable: false + - name: annotated_id + nullable: false + - name: label_id + nullable: false + operation: createTable + table: manifestlabel + - columns: [] + indexName: manifestlabel + indexType: index + operation: createIndex + table: manifestlabel_annotated_id + - columns: [] + indexName: manifestlabel + indexType: index + operation: createIndex + table: manifestlabel_label_id + - columns: [] + indexName: manifestlabel + indexType: index + operation: createIndex + table: manifestlabel_repository_id + - columns: [] + indexName: manifestlabel + indexType: unique + operation: createIndex + table: manifestlabel_repository_id_annotated_id_label_id + - columns: + - name: id + nullable: false + - name: blob_id + nullable: false + - name: manifest_id + nullable: false + - name: manifest_index + nullable: false + - name: metadata_json + nullable: false + operation: createTable + table: manifestlayer + - columns: [] + indexName: manifestlayer + indexType: index + operation: createIndex + table: manifestlayer_blob_id + - columns: [] + indexName: manifestlayer + indexType: index + operation: createIndex + table: manifestlayer_manifest_id + - columns: [] + indexName: manifestlayer + indexType: unique + operation: createIndex + table: manifestlayer_manifest_id_manifest_index + - columns: [] + indexName: manifestlayer + indexType: index + operation: createIndex + table: manifestlayer_manifest_index + - columns: + - name: id + nullable: false + - name: manifest_list_id + nullable: false + - name: manifest_id + nullable: false + - name: operating_system + nullable: true + - name: architecture + nullable: true + - name: platform_json + nullable: true + - name: media_type_id + nullable: false + operation: createTable + table: manifestlistmanifest + - columns: [] + indexName: manifestlistmanifest + indexType: index + operation: createIndex + table: manifestlistmanifest_manifest_id + - columns: [] + indexName: manifestlistmanifest + indexType: index + operation: createIndex + table: manifestlistmanifest_manifest_list_id + - columns: [] + indexName: manifestlistmanifest + indexType: index + operation: createIndex + table: manifestlistmanifest_manifest_listid_os_arch_mtid + - columns: [] + indexName: manifestlistmanifest + indexType: index + operation: createIndex + table: manifestlistmanifest_manifest_listid_mtid + - columns: [] + indexName: manifestlistmanifest + indexType: index + operation: createIndex + table: manifestlistmanifest_media_type_id + - columns: + - name: id + nullable: false + - name: name + nullable: false + - name: repository_id + nullable: false + - name: manifest_list_id + nullable: true + - name: lifetime_start + nullable: false + - name: lifetime_end + nullable: true + - name: hidden + nullable: false + - name: reverted + nullable: false + - name: protected + nullable: false + - name: tag_kind_id + nullable: false + - name: linked_tag_id + nullable: true + operation: createTable + table: tag + - columns: [] + indexName: tag + indexType: index + operation: createIndex + table: tag_lifetime_end + - columns: [] + indexName: tag + indexType: index + operation: createIndex + table: tag_linked_tag_id + - columns: [] + indexName: tag + indexType: index + operation: createIndex + table: tag_manifest_list_id + - columns: [] + indexName: tag + indexType: index + operation: createIndex + table: tag_repository_id + - columns: [] + indexName: tag + indexType: index + operation: createIndex + table: tag_repository_id_name_hidden + - columns: [] + indexName: tag + indexType: unique + operation: createIndex + table: tag_repository_id_name_lifetime_end + - columns: [] + indexName: tag + indexType: index + operation: createIndex + table: tag_repository_id_name + - columns: [] + indexName: tag + indexType: index + operation: createIndex + table: tag_tag_kind_id + - columns: + - name: id + nullable: false + - name: manifest_layer_id + nullable: false + - name: image_id + nullable: false + - name: checksum + nullable: false + - name: compat_json + nullable: false + operation: createTable + table: manifestlayerdockerv1 + - columns: [] + indexName: manifestlayerdockerv1 + indexType: index + operation: createIndex + table: manifestlayerdockerv1_image_id + - columns: [] + indexName: manifestlayerdockerv1 + indexType: index + operation: createIndex + table: manifestlayerdockerv1_manifest_layer_id + - columns: + - name: id + nullable: false + - name: layer_id + nullable: false + - name: scannable + nullable: false + - name: scanned_by + nullable: false + operation: createTable + table: manifestlayerscan + - columns: [] + indexName: manifestlayerscan + indexType: unique + operation: createIndex + table: manifestlayerscan_layer_id diff --git a/data/migrations/dba_operator/87fbbc224f10-databasemigration.yaml b/data/migrations/dba_operator/87fbbc224f10-databasemigration.yaml new file mode 100644 index 000000000..adf211ce7 --- /dev/null +++ b/data/migrations/dba_operator/87fbbc224f10-databasemigration.yaml @@ -0,0 +1,26 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 87fbbc224f10 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 87fbbc224f10 + image: quay.io/quay/quay + name: 87fbbc224f10 + previous: 17aff2e1354e + schemaHints: + - columns: + - name: disabled_datetime + nullable: true + operation: addColumn + table: repositorybuildtrigger + - columns: [] + indexName: repositorybuildtrigger + indexType: index + operation: createIndex + table: repositorybuildtrigger_disabled_datetime diff --git a/data/migrations/dba_operator/9093adccc784-databasemigration.yaml b/data/migrations/dba_operator/9093adccc784-databasemigration.yaml new file mode 100644 index 000000000..1a769edc7 --- /dev/null +++ b/data/migrations/dba_operator/9093adccc784-databasemigration.yaml @@ -0,0 +1,222 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 9093adccc784 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 9093adccc784 + image: quay.io/quay/quay + name: 9093adccc784 + previous: 6c21e2cfb8b6 + schemaHints: + - columns: + - name: id + nullable: false + - name: repository_id + nullable: false + - name: digest + nullable: false + - name: media_type_id + nullable: false + - name: manifest_bytes + nullable: false + operation: createTable + table: manifest + - columns: [] + indexName: manifest + indexType: index + operation: createIndex + table: manifest_digest + - columns: [] + indexName: manifest + indexType: index + operation: createIndex + table: manifest_media_type_id + - columns: [] + indexName: manifest + indexType: index + operation: createIndex + table: manifest_repository_id + - columns: [] + indexName: manifest + indexType: unique + operation: createIndex + table: manifest_repository_id_digest + - columns: [] + indexName: manifest + indexType: index + operation: createIndex + table: manifest_repository_id_media_type_id + - columns: + - name: id + nullable: false + - name: repository_id + nullable: false + - name: manifest_id + nullable: false + - name: blob_id + nullable: false + - name: blob_index + nullable: false + operation: createTable + table: manifestblob + - columns: [] + indexName: manifestblob + indexType: index + operation: createIndex + table: manifestblob_blob_id + - columns: [] + indexName: manifestblob + indexType: index + operation: createIndex + table: manifestblob_manifest_id + - columns: [] + indexName: manifestblob + indexType: unique + operation: createIndex + table: manifestblob_manifest_id_blob_id + - columns: [] + indexName: manifestblob + indexType: unique + operation: createIndex + table: manifestblob_manifest_id_blob_index + - columns: [] + indexName: manifestblob + indexType: index + operation: createIndex + table: manifestblob_repository_id + - columns: + - name: id + nullable: false + - name: repository_id + nullable: false + - name: manifest_id + nullable: false + - name: label_id + nullable: false + operation: createTable + table: manifestlabel + - columns: [] + indexName: manifestlabel + indexType: index + operation: createIndex + table: manifestlabel_label_id + - columns: [] + indexName: manifestlabel + indexType: index + operation: createIndex + table: manifestlabel_manifest_id + - columns: [] + indexName: manifestlabel + indexType: unique + operation: createIndex + table: manifestlabel_manifest_id_label_id + - columns: [] + indexName: manifestlabel + indexType: index + operation: createIndex + table: manifestlabel_repository_id + - columns: + - name: id + nullable: false + - name: repository_id + nullable: false + - name: manifest_id + nullable: false + - name: image_id + nullable: false + operation: createTable + table: manifestlegacyimage + - columns: [] + indexName: manifestlegacyimage + indexType: index + operation: createIndex + table: manifestlegacyimage_image_id + - columns: [] + indexName: manifestlegacyimage + indexType: unique + operation: createIndex + table: manifestlegacyimage_manifest_id + - columns: [] + indexName: manifestlegacyimage + indexType: index + operation: createIndex + table: manifestlegacyimage_repository_id + - columns: + - name: id + nullable: false + - name: tag_manifest_id + nullable: false + - name: manifest_id + nullable: false + - name: broken + nullable: false + operation: createTable + table: tagmanifesttomanifest + - columns: [] + indexName: tagmanifesttomanifest + indexType: index + operation: createIndex + table: tagmanifesttomanifest_broken + - columns: [] + indexName: tagmanifesttomanifest + indexType: unique + operation: createIndex + table: tagmanifesttomanifest_manifest_id + - columns: [] + indexName: tagmanifesttomanifest + indexType: unique + operation: createIndex + table: tagmanifesttomanifest_tag_manifest_id + - columns: + - name: id + nullable: false + - name: tag_manifest_id + nullable: false + - name: manifest_id + nullable: true + - name: label_id + nullable: false + - name: tag_manifest_label_id + nullable: false + - name: manifest_label_id + nullable: true + - name: broken_manifest + nullable: false + operation: createTable + table: tagmanifestlabelmap + - columns: [] + indexName: tagmanifestlabelmap + indexType: index + operation: createIndex + table: tagmanifestlabelmap_broken_manifest + - columns: [] + indexName: tagmanifestlabelmap + indexType: index + operation: createIndex + table: tagmanifestlabelmap_label_id + - columns: [] + indexName: tagmanifestlabelmap + indexType: index + operation: createIndex + table: tagmanifestlabelmap_manifest_id + - columns: [] + indexName: tagmanifestlabelmap + indexType: index + operation: createIndex + table: tagmanifestlabelmap_manifest_label_id + - columns: [] + indexName: tagmanifestlabelmap + indexType: index + operation: createIndex + table: tagmanifestlabelmap_tag_manifest_id + - columns: [] + indexName: tagmanifestlabelmap + indexType: index + operation: createIndex + table: tagmanifestlabelmap_tag_manifest_label_id diff --git a/data/migrations/dba_operator/94836b099894-databasemigration.yaml b/data/migrations/dba_operator/94836b099894-databasemigration.yaml new file mode 100644 index 000000000..31b076d50 --- /dev/null +++ b/data/migrations/dba_operator/94836b099894-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: 94836b099894 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - 94836b099894 + image: quay.io/quay/quay + name: 94836b099894 + previous: faf752bd2e0a + schemaHints: [] diff --git a/data/migrations/dba_operator/a6c463dfb9fe-databasemigration.yaml b/data/migrations/dba_operator/a6c463dfb9fe-databasemigration.yaml new file mode 100644 index 000000000..ae4accfb8 --- /dev/null +++ b/data/migrations/dba_operator/a6c463dfb9fe-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: a6c463dfb9fe +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - a6c463dfb9fe + image: quay.io/quay/quay + name: a6c463dfb9fe + previous: b4df55dea4b3 + schemaHints: [] diff --git a/data/migrations/dba_operator/b4c2d45bc132-databasemigration.yaml b/data/migrations/dba_operator/b4c2d45bc132-databasemigration.yaml new file mode 100644 index 000000000..5ac38b9b1 --- /dev/null +++ b/data/migrations/dba_operator/b4c2d45bc132-databasemigration.yaml @@ -0,0 +1,51 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: b4c2d45bc132 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - b4c2d45bc132 + image: quay.io/quay/quay + name: b4c2d45bc132 + previous: 152edccba18c + schemaHints: + - columns: + - name: id + nullable: false + - name: namespace_id + nullable: false + - name: marked + nullable: false + - name: original_username + nullable: false + - name: original_email + nullable: false + - name: queue_id + nullable: true + operation: createTable + table: deletednamespace + - columns: [] + indexName: deletednamespace + indexType: unique + operation: createIndex + table: deletednamespace_namespace_id + - columns: [] + indexName: deletednamespace + indexType: index + operation: createIndex + table: deletednamespace_original_email + - columns: [] + indexName: deletednamespace + indexType: index + operation: createIndex + table: deletednamespace_original_username + - columns: [] + indexName: deletednamespace + indexType: index + operation: createIndex + table: deletednamespace_queue_id diff --git a/data/migrations/dba_operator/b4df55dea4b3-databasemigration.yaml b/data/migrations/dba_operator/b4df55dea4b3-databasemigration.yaml new file mode 100644 index 000000000..ab0aefea1 --- /dev/null +++ b/data/migrations/dba_operator/b4df55dea4b3-databasemigration.yaml @@ -0,0 +1,38 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: b4df55dea4b3 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - b4df55dea4b3 + image: quay.io/quay/quay + name: b4df55dea4b3 + previous: b8ae68ad3e52 + schemaHints: + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: repositorykind + - columns: [] + indexName: repositorykind + indexType: unique + operation: createIndex + table: repositorykind_name + - columns: + - name: kind_id + nullable: false + operation: addColumn + table: !!python/unicode 'repository' + - columns: [] + indexName: repository + indexType: index + operation: createIndex + table: repository_kind_id diff --git a/data/migrations/dba_operator/b547bc139ad8-databasemigration.yaml b/data/migrations/dba_operator/b547bc139ad8-databasemigration.yaml new file mode 100644 index 000000000..809e1f2c4 --- /dev/null +++ b/data/migrations/dba_operator/b547bc139ad8-databasemigration.yaml @@ -0,0 +1,32 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: b547bc139ad8 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - b547bc139ad8 + image: quay.io/quay/quay + name: b547bc139ad8 + previous: 0cf50323c78b + schemaHints: + - columns: + - name: id + nullable: false + - name: robot_account_id + nullable: false + - name: description + nullable: false + - name: unstructured_json + nullable: false + operation: createTable + table: robotaccountmetadata + - columns: [] + indexName: robotaccountmetadata + indexType: unique + operation: createIndex + table: robotaccountmetadata_robot_account_id diff --git a/data/migrations/dba_operator/b8ae68ad3e52-databasemigration.yaml b/data/migrations/dba_operator/b8ae68ad3e52-databasemigration.yaml new file mode 100644 index 000000000..7e6a0a0cb --- /dev/null +++ b/data/migrations/dba_operator/b8ae68ad3e52-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: b8ae68ad3e52 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - b8ae68ad3e52 + image: quay.io/quay/quay + name: b8ae68ad3e52 + previous: 7a525c68eb13 + schemaHints: [] diff --git a/data/migrations/dba_operator/b9045731c4de-databasemigration.yaml b/data/migrations/dba_operator/b9045731c4de-databasemigration.yaml new file mode 100644 index 000000000..2628bae5c --- /dev/null +++ b/data/migrations/dba_operator/b9045731c4de-databasemigration.yaml @@ -0,0 +1,36 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: b9045731c4de +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - b9045731c4de + image: quay.io/quay/quay + name: b9045731c4de + previous: e184af42242d + schemaHints: + - columns: [] + indexName: repositorytag + indexType: index + operation: createIndex + table: repositorytag_repository_id_lifetime_end_ts + - columns: [] + indexName: tag + indexType: index + operation: createIndex + table: tag_repository_id_lifetime_end_ms + - columns: [] + indexName: repositorytag + indexType: index + operation: createIndex + table: repositorytag_repository_id_lifetime_start_ts + - columns: [] + indexName: tag + indexType: index + operation: createIndex + table: tag_repository_id_lifetime_start_ms diff --git a/data/migrations/dba_operator/b918abdbee43-databasemigration.yaml b/data/migrations/dba_operator/b918abdbee43-databasemigration.yaml new file mode 100644 index 000000000..b1b4206e4 --- /dev/null +++ b/data/migrations/dba_operator/b918abdbee43-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: b918abdbee43 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - b918abdbee43 + image: quay.io/quay/quay + name: b918abdbee43 + previous: 481623ba00ba + schemaHints: [] diff --git a/data/migrations/dba_operator/be8d1c402ce0-databasemigration.yaml b/data/migrations/dba_operator/be8d1c402ce0-databasemigration.yaml new file mode 100644 index 000000000..25f1693a4 --- /dev/null +++ b/data/migrations/dba_operator/be8d1c402ce0-databasemigration.yaml @@ -0,0 +1,46 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: be8d1c402ce0 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - be8d1c402ce0 + image: quay.io/quay/quay + name: be8d1c402ce0 + previous: a6c463dfb9fe + schemaHints: + - columns: + - name: id + nullable: false + - name: team_id + nullable: false + - name: transaction_id + nullable: false + - name: last_updated + nullable: true + - name: service_id + nullable: false + - name: config + nullable: false + operation: createTable + table: teamsync + - columns: [] + indexName: teamsync + indexType: index + operation: createIndex + table: teamsync_last_updated + - columns: [] + indexName: teamsync + indexType: index + operation: createIndex + table: teamsync_service_id + - columns: [] + indexName: teamsync + indexType: unique + operation: createIndex + table: teamsync_team_id diff --git a/data/migrations/dba_operator/c00a1f15968b-databasemigration.yaml b/data/migrations/dba_operator/c00a1f15968b-databasemigration.yaml new file mode 100644 index 000000000..efff2fcc9 --- /dev/null +++ b/data/migrations/dba_operator/c00a1f15968b-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: c00a1f15968b +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - c00a1f15968b + image: quay.io/quay/quay + name: c00a1f15968b + previous: 67f0abd172ae + schemaHints: [] diff --git a/data/migrations/dba_operator/c059b952ed76-databasemigration.yaml b/data/migrations/dba_operator/c059b952ed76-databasemigration.yaml new file mode 100644 index 000000000..99b788f2d --- /dev/null +++ b/data/migrations/dba_operator/c059b952ed76-databasemigration.yaml @@ -0,0 +1,19 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: c059b952ed76 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - c059b952ed76 + image: quay.io/quay/quay + name: c059b952ed76 + previous: 49e1138ed12d + schemaHints: + - indexName: oauthaccesstoken_refresh_token + operation: dropIndex + table: oauthaccesstoken diff --git a/data/migrations/dba_operator/c13c8052f7a6-databasemigration.yaml b/data/migrations/dba_operator/c13c8052f7a6-databasemigration.yaml new file mode 100644 index 000000000..33743ba1d --- /dev/null +++ b/data/migrations/dba_operator/c13c8052f7a6-databasemigration.yaml @@ -0,0 +1,130 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: c13c8052f7a6 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - c13c8052f7a6 + image: quay.io/quay/quay + name: c13c8052f7a6 + previous: 5248ddf35167 + schemaHints: + - columns: + - name: id + nullable: false + - name: robot_account_id + nullable: false + - name: token + nullable: false + - name: fully_migrated + nullable: false + operation: createTable + table: robotaccounttoken + - columns: [] + indexName: robotaccounttoken + indexType: unique + operation: createIndex + table: robotaccounttoken_robot_account_id + - columns: + - name: token_code + nullable: true + operation: addColumn + table: !!python/unicode 'accesstoken' + - columns: + - name: token_name + nullable: true + operation: addColumn + table: !!python/unicode 'accesstoken' + - columns: [] + indexName: accesstoken + indexType: unique + operation: createIndex + table: accesstoken_token_name + - columns: + - name: token_name + nullable: true + operation: addColumn + table: !!python/unicode 'appspecificauthtoken' + - columns: + - name: token_secret + nullable: true + operation: addColumn + table: !!python/unicode 'appspecificauthtoken' + - columns: [] + indexName: appspecificauthtoken + indexType: unique + operation: createIndex + table: appspecificauthtoken_token_name + - columns: + - name: verification_code + nullable: true + operation: addColumn + table: !!python/unicode 'emailconfirmation' + - columns: + - name: token_code + nullable: true + operation: addColumn + table: !!python/unicode 'oauthaccesstoken' + - columns: + - name: token_name + nullable: true + operation: addColumn + table: !!python/unicode 'oauthaccesstoken' + - columns: [] + indexName: oauthaccesstoken + indexType: unique + operation: createIndex + table: oauthaccesstoken_token_name + - columns: + - name: secure_client_secret + nullable: true + operation: addColumn + table: !!python/unicode 'oauthapplication' + - columns: + - name: fully_migrated + nullable: false + operation: addColumn + table: !!python/unicode 'oauthapplication' + - columns: + - name: code_credential + nullable: true + operation: addColumn + table: !!python/unicode 'oauthauthorizationcode' + - columns: + - name: code_name + nullable: true + operation: addColumn + table: !!python/unicode 'oauthauthorizationcode' + - columns: [] + indexName: oauthauthorizationcode + indexType: unique + operation: createIndex + table: oauthauthorizationcode_code_name + - indexName: oauthauthorizationcode_code + operation: dropIndex + table: oauthauthorizationcode + - columns: [] + indexName: oauthauthorizationcode + indexType: unique + operation: createIndex + table: oauthauthorizationcode_code + - columns: + - name: secure_auth_token + nullable: true + operation: addColumn + table: !!python/unicode 'repositorybuildtrigger' + - columns: + - name: secure_private_key + nullable: true + operation: addColumn + table: !!python/unicode 'repositorybuildtrigger' + - columns: + - name: fully_migrated + nullable: false + operation: addColumn + table: !!python/unicode 'repositorybuildtrigger' diff --git a/data/migrations/dba_operator/c156deb8845d-databasemigration.yaml b/data/migrations/dba_operator/c156deb8845d-databasemigration.yaml new file mode 100644 index 000000000..c51f2c135 --- /dev/null +++ b/data/migrations/dba_operator/c156deb8845d-databasemigration.yaml @@ -0,0 +1,1612 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: c156deb8845d +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - c156deb8845d + image: quay.io/quay/quay + name: c156deb8845d + previous: null + schemaHints: + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: accesstokenkind + - columns: [] + indexName: accesstokenkind + indexType: unique + operation: createIndex + table: accesstokenkind_name + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: buildtriggerservice + - columns: [] + indexName: buildtriggerservice + indexType: unique + operation: createIndex + table: buildtriggerservice_name + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: externalnotificationevent + - columns: [] + indexName: externalnotificationevent + indexType: unique + operation: createIndex + table: externalnotificationevent_name + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: externalnotificationmethod + - columns: [] + indexName: externalnotificationmethod + indexType: unique + operation: createIndex + table: externalnotificationmethod_name + - columns: + - name: id + nullable: false + - name: uuid + nullable: false + - name: checksum + nullable: true + - name: image_size + nullable: true + - name: uncompressed_size + nullable: true + - name: uploading + nullable: true + - name: cas_path + nullable: false + - name: content_checksum + nullable: true + operation: createTable + table: imagestorage + - columns: [] + indexName: imagestorage + indexType: index + operation: createIndex + table: imagestorage_content_checksum + - columns: [] + indexName: imagestorage + indexType: unique + operation: createIndex + table: imagestorage_uuid + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: imagestoragelocation + - columns: [] + indexName: imagestoragelocation + indexType: unique + operation: createIndex + table: imagestoragelocation_name + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: imagestoragesignaturekind + - columns: [] + indexName: imagestoragesignaturekind + indexType: unique + operation: createIndex + table: imagestoragesignaturekind_name + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: imagestoragetransformation + - columns: [] + indexName: imagestoragetransformation + indexType: unique + operation: createIndex + table: imagestoragetransformation_name + - columns: + - name: id + nullable: false + - name: name + nullable: false + - name: mutable + nullable: false + operation: createTable + table: labelsourcetype + - columns: [] + indexName: labelsourcetype + indexType: unique + operation: createIndex + table: labelsourcetype_name + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: logentrykind + - columns: [] + indexName: logentrykind + indexType: unique + operation: createIndex + table: logentrykind_name + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: loginservice + - columns: [] + indexName: loginservice + indexType: unique + operation: createIndex + table: loginservice_name + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: mediatype + - columns: [] + indexName: mediatype + indexType: unique + operation: createIndex + table: mediatype_name + - columns: + - name: id + nullable: false + - name: content + nullable: false + - name: uuid + nullable: true + operation: createTable + table: messages + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: notificationkind + - columns: [] + indexName: notificationkind + indexType: unique + operation: createIndex + table: notificationkind_name + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: quayregion + - columns: [] + indexName: quayregion + indexType: unique + operation: createIndex + table: quayregion_name + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: quayservice + - columns: [] + indexName: quayservice + indexType: unique + operation: createIndex + table: quayservice_name + - columns: + - name: id + nullable: false + - name: queue_name + nullable: false + - name: body + nullable: false + - name: available_after + nullable: false + - name: available + nullable: false + - name: processing_expires + nullable: true + - name: retries_remaining + nullable: false + operation: createTable + table: queueitem + - columns: [] + indexName: queueitem + indexType: index + operation: createIndex + table: queueitem_available + - columns: [] + indexName: queueitem + indexType: index + operation: createIndex + table: queueitem_available_after + - columns: [] + indexName: queueitem + indexType: index + operation: createIndex + table: queueitem_processing_expires + - columns: [] + indexName: queueitem + indexType: index + operation: createIndex + table: queueitem_queue_name + - columns: [] + indexName: queueitem + indexType: index + operation: createIndex + table: queueitem_retries_remaining + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: role + - columns: [] + indexName: role + indexType: unique + operation: createIndex + table: role_name + - columns: + - name: id + nullable: false + - name: approver_id + nullable: true + - name: approval_type + nullable: false + - name: approved_date + nullable: false + - name: notes + nullable: false + operation: createTable + table: servicekeyapproval + - columns: [] + indexName: servicekeyapproval + indexType: index + operation: createIndex + table: servicekeyapproval_approval_type + - columns: [] + indexName: servicekeyapproval + indexType: index + operation: createIndex + table: servicekeyapproval_approver_id + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: teamrole + - columns: [] + indexName: teamrole + indexType: index + operation: createIndex + table: teamrole_name + - columns: + - name: id + nullable: false + - name: uuid + nullable: true + - name: username + nullable: false + - name: password_hash + nullable: true + - name: email + nullable: false + - name: verified + nullable: false + - name: stripe_id + nullable: true + - name: organization + nullable: false + - name: robot + nullable: false + - name: invoice_email + nullable: false + - name: invalid_login_attempts + nullable: false + - name: last_invalid_login + nullable: false + - name: removed_tag_expiration_s + nullable: false + - name: enabled + nullable: false + - name: invoice_email_address + nullable: true + operation: createTable + table: user + - columns: [] + indexName: user + indexType: unique + operation: createIndex + table: user_email + - columns: [] + indexName: user + indexType: index + operation: createIndex + table: user_invoice_email_address + - columns: [] + indexName: user + indexType: index + operation: createIndex + table: user_organization + - columns: [] + indexName: user + indexType: index + operation: createIndex + table: user_robot + - columns: [] + indexName: user + indexType: index + operation: createIndex + table: user_stripe_id + - columns: [] + indexName: user + indexType: unique + operation: createIndex + table: user_username + - columns: + - name: id + nullable: false + - name: name + nullable: false + operation: createTable + table: visibility + - columns: [] + indexName: visibility + indexType: unique + operation: createIndex + table: visibility_name + - columns: + - name: id + nullable: false + - name: code + nullable: false + - name: user_id + nullable: false + - name: pw_reset + nullable: false + - name: new_email + nullable: true + - name: email_confirm + nullable: false + - name: created + nullable: false + operation: createTable + table: emailconfirmation + - columns: [] + indexName: emailconfirmation + indexType: unique + operation: createIndex + table: emailconfirmation_code + - columns: [] + indexName: emailconfirmation + indexType: index + operation: createIndex + table: emailconfirmation_user_id + - columns: + - name: id + nullable: false + - name: user_id + nullable: false + - name: service_id + nullable: false + - name: service_ident + nullable: false + - name: metadata_json + nullable: false + operation: createTable + table: federatedlogin + - columns: [] + indexName: federatedlogin + indexType: index + operation: createIndex + table: federatedlogin_service_id + - columns: [] + indexName: federatedlogin + indexType: unique + operation: createIndex + table: federatedlogin_service_id_service_ident + - columns: [] + indexName: federatedlogin + indexType: unique + operation: createIndex + table: federatedlogin_service_id_user_id + - columns: [] + indexName: federatedlogin + indexType: index + operation: createIndex + table: federatedlogin_user_id + - columns: + - name: id + nullable: false + - name: storage_id + nullable: false + - name: location_id + nullable: false + operation: createTable + table: imagestorageplacement + - columns: [] + indexName: imagestorageplacement + indexType: index + operation: createIndex + table: imagestorageplacement_location_id + - columns: [] + indexName: imagestorageplacement + indexType: index + operation: createIndex + table: imagestorageplacement_storage_id + - columns: [] + indexName: imagestorageplacement + indexType: unique + operation: createIndex + table: imagestorageplacement_storage_id_location_id + - columns: + - name: id + nullable: false + - name: storage_id + nullable: false + - name: kind_id + nullable: false + - name: signature + nullable: true + - name: uploading + nullable: true + operation: createTable + table: imagestoragesignature + - columns: [] + indexName: imagestoragesignature + indexType: index + operation: createIndex + table: imagestoragesignature_kind_id + - columns: [] + indexName: imagestoragesignature + indexType: unique + operation: createIndex + table: imagestoragesignature_kind_id_storage_id + - columns: [] + indexName: imagestoragesignature + indexType: index + operation: createIndex + table: imagestoragesignature_storage_id + - columns: + - name: id + nullable: false + - name: uuid + nullable: false + - name: key + nullable: false + - name: value + nullable: false + - name: media_type_id + nullable: false + - name: source_type_id + nullable: false + operation: createTable + table: label + - columns: [] + indexName: label + indexType: index + operation: createIndex + table: label_key + - columns: [] + indexName: label + indexType: index + operation: createIndex + table: label_media_type_id + - columns: [] + indexName: label + indexType: index + operation: createIndex + table: label_source_type_id + - columns: [] + indexName: label + indexType: unique + operation: createIndex + table: label_uuid + - columns: + - name: id + nullable: false + - name: kind_id + nullable: false + - name: account_id + nullable: false + - name: performer_id + nullable: true + - name: repository_id + nullable: true + - name: datetime + nullable: false + - name: ip + nullable: true + - name: metadata_json + nullable: false + operation: createTable + table: logentry + - columns: [] + indexName: logentry + indexType: index + operation: createIndex + table: logentry_account_id + - columns: [] + indexName: logentry + indexType: index + operation: createIndex + table: logentry_account_id_datetime + - columns: [] + indexName: logentry + indexType: index + operation: createIndex + table: logentry_datetime + - columns: [] + indexName: logentry + indexType: index + operation: createIndex + table: logentry_kind_id + - columns: [] + indexName: logentry + indexType: index + operation: createIndex + table: logentry_performer_id + - columns: [] + indexName: logentry + indexType: index + operation: createIndex + table: logentry_performer_id_datetime + - columns: [] + indexName: logentry + indexType: index + operation: createIndex + table: logentry_repository_id + - columns: [] + indexName: logentry + indexType: index + operation: createIndex + table: logentry_repository_id_datetime + - columns: [] + indexName: logentry + indexType: index + operation: createIndex + table: logentry_repository_id_datetime_kind_id + - columns: + - name: id + nullable: false + - name: uuid + nullable: false + - name: kind_id + nullable: false + - name: target_id + nullable: false + - name: metadata_json + nullable: false + - name: created + nullable: false + - name: dismissed + nullable: false + - name: lookup_path + nullable: true + operation: createTable + table: notification + - columns: [] + indexName: notification + indexType: index + operation: createIndex + table: notification_created + - columns: [] + indexName: notification + indexType: index + operation: createIndex + table: notification_kind_id + - columns: [] + indexName: notification + indexType: index + operation: createIndex + table: notification_lookup_path + - columns: [] + indexName: notification + indexType: index + operation: createIndex + table: notification_target_id + - columns: [] + indexName: notification + indexType: index + operation: createIndex + table: notification_uuid + - columns: + - name: id + nullable: false + - name: client_id + nullable: false + - name: client_secret + nullable: false + - name: redirect_uri + nullable: false + - name: application_uri + nullable: false + - name: organization_id + nullable: false + - name: name + nullable: false + - name: description + nullable: false + - name: gravatar_email + nullable: true + operation: createTable + table: oauthapplication + - columns: [] + indexName: oauthapplication + indexType: index + operation: createIndex + table: oauthapplication_client_id + - columns: [] + indexName: oauthapplication + indexType: index + operation: createIndex + table: oauthapplication_organization_id + - columns: + - name: id + nullable: false + - name: service_id + nullable: false + - name: version + nullable: false + - name: region_id + nullable: false + - name: reverted + nullable: false + - name: created + nullable: false + operation: createTable + table: quayrelease + - columns: [] + indexName: quayrelease + indexType: index + operation: createIndex + table: quayrelease_created + - columns: [] + indexName: quayrelease + indexType: index + operation: createIndex + table: quayrelease_region_id + - columns: [] + indexName: quayrelease + indexType: index + operation: createIndex + table: quayrelease_service_id + - columns: [] + indexName: quayrelease + indexType: index + operation: createIndex + table: quayrelease_service_id_region_id_created + - columns: [] + indexName: quayrelease + indexType: unique + operation: createIndex + table: quayrelease_service_id_version_region_id + - columns: + - name: id + nullable: false + - name: namespace_user_id + nullable: true + - name: name + nullable: false + - name: visibility_id + nullable: false + - name: description + nullable: true + - name: badge_token + nullable: false + operation: createTable + table: repository + - columns: [] + indexName: repository + indexType: index + operation: createIndex + table: repository_namespace_user_id + - columns: [] + indexName: repository + indexType: unique + operation: createIndex + table: repository_namespace_user_id_name + - columns: [] + indexName: repository + indexType: index + operation: createIndex + table: repository_visibility_id + - columns: + - name: id + nullable: false + - name: name + nullable: false + - name: kid + nullable: false + - name: service + nullable: false + - name: jwk + nullable: false + - name: metadata + nullable: false + - name: created_date + nullable: false + - name: expiration_date + nullable: true + - name: rotation_duration + nullable: true + - name: approval_id + nullable: true + operation: createTable + table: servicekey + - columns: [] + indexName: servicekey + indexType: index + operation: createIndex + table: servicekey_approval_id + - columns: [] + indexName: servicekey + indexType: unique + operation: createIndex + table: servicekey_kid + - columns: [] + indexName: servicekey + indexType: index + operation: createIndex + table: servicekey_service + - columns: + - name: id + nullable: false + - name: name + nullable: false + - name: organization_id + nullable: false + - name: role_id + nullable: false + - name: description + nullable: false + operation: createTable + table: team + - columns: [] + indexName: team + indexType: index + operation: createIndex + table: team_name + - columns: [] + indexName: team + indexType: unique + operation: createIndex + table: team_name_organization_id + - columns: [] + indexName: team + indexType: index + operation: createIndex + table: team_organization_id + - columns: [] + indexName: team + indexType: index + operation: createIndex + table: team_role_id + - columns: + - name: id + nullable: false + - name: storage_id + nullable: false + - name: piece_length + nullable: false + - name: pieces + nullable: false + operation: createTable + table: torrentinfo + - columns: [] + indexName: torrentinfo + indexType: index + operation: createIndex + table: torrentinfo_storage_id + - columns: [] + indexName: torrentinfo + indexType: unique + operation: createIndex + table: torrentinfo_storage_id_piece_length + - columns: + - name: id + nullable: false + - name: user_id + nullable: false + - name: location_id + nullable: false + operation: createTable + table: userregion + - columns: [] + indexName: userregion + indexType: index + operation: createIndex + table: userregion_location_id + - columns: [] + indexName: userregion + indexType: index + operation: createIndex + table: userregion_user_id + - columns: + - name: id + nullable: false + - name: friendly_name + nullable: true + - name: code + nullable: false + - name: repository_id + nullable: false + - name: created + nullable: false + - name: role_id + nullable: false + - name: temporary + nullable: false + - name: kind_id + nullable: true + operation: createTable + table: accesstoken + - columns: [] + indexName: accesstoken + indexType: unique + operation: createIndex + table: accesstoken_code + - columns: [] + indexName: accesstoken + indexType: index + operation: createIndex + table: accesstoken_kind_id + - columns: [] + indexName: accesstoken + indexType: index + operation: createIndex + table: accesstoken_repository_id + - columns: [] + indexName: accesstoken + indexType: index + operation: createIndex + table: accesstoken_role_id + - columns: + - name: id + nullable: false + - name: repository_id + nullable: false + - name: uuid + nullable: false + - name: byte_count + nullable: false + - name: sha_state + nullable: true + - name: location_id + nullable: false + - name: storage_metadata + nullable: true + - name: chunk_count + nullable: false + - name: uncompressed_byte_count + nullable: true + - name: created + nullable: false + - name: piece_sha_state + nullable: true + - name: piece_hashes + nullable: true + operation: createTable + table: blobupload + - columns: [] + indexName: blobupload + indexType: index + operation: createIndex + table: blobupload_created + - columns: [] + indexName: blobupload + indexType: index + operation: createIndex + table: blobupload_location_id + - columns: [] + indexName: blobupload + indexType: index + operation: createIndex + table: blobupload_repository_id + - columns: [] + indexName: blobupload + indexType: unique + operation: createIndex + table: blobupload_repository_id_uuid + - columns: [] + indexName: blobupload + indexType: unique + operation: createIndex + table: blobupload_uuid + - columns: + - name: id + nullable: false + - name: docker_image_id + nullable: false + - name: repository_id + nullable: false + - name: ancestors + nullable: true + - name: storage_id + nullable: true + - name: created + nullable: true + - name: comment + nullable: true + - name: command + nullable: true + - name: aggregate_size + nullable: true + - name: v1_json_metadata + nullable: true + - name: v1_checksum + nullable: true + - name: security_indexed + nullable: false + - name: security_indexed_engine + nullable: false + - name: parent_id + nullable: true + operation: createTable + table: image + - columns: [] + indexName: image + indexType: index + operation: createIndex + table: image_ancestors + - columns: [] + indexName: image + indexType: index + operation: createIndex + table: image_docker_image_id + - columns: [] + indexName: image + indexType: index + operation: createIndex + table: image_parent_id + - columns: [] + indexName: image + indexType: index + operation: createIndex + table: image_repository_id + - columns: [] + indexName: image + indexType: unique + operation: createIndex + table: image_repository_id_docker_image_id + - columns: [] + indexName: image + indexType: index + operation: createIndex + table: image_security_indexed + - columns: [] + indexName: image + indexType: index + operation: createIndex + table: image_security_indexed_engine + - columns: [] + indexName: image + indexType: index + operation: createIndex + table: image_security_indexed_engine_security_indexed + - columns: [] + indexName: image + indexType: index + operation: createIndex + table: image_storage_id + - columns: + - name: id + nullable: false + - name: uuid + nullable: false + - name: application_id + nullable: false + - name: authorized_user_id + nullable: false + - name: scope + nullable: false + - name: access_token + nullable: false + - name: token_type + nullable: false + - name: expires_at + nullable: false + - name: refresh_token + nullable: true + - name: data + nullable: false + operation: createTable + table: oauthaccesstoken + - columns: [] + indexName: oauthaccesstoken + indexType: index + operation: createIndex + table: oauthaccesstoken_access_token + - columns: [] + indexName: oauthaccesstoken + indexType: index + operation: createIndex + table: oauthaccesstoken_application_id + - columns: [] + indexName: oauthaccesstoken + indexType: index + operation: createIndex + table: oauthaccesstoken_authorized_user_id + - columns: [] + indexName: oauthaccesstoken + indexType: index + operation: createIndex + table: oauthaccesstoken_refresh_token + - columns: [] + indexName: oauthaccesstoken + indexType: index + operation: createIndex + table: oauthaccesstoken_uuid + - columns: + - name: id + nullable: false + - name: application_id + nullable: false + - name: code + nullable: false + - name: scope + nullable: false + - name: data + nullable: false + operation: createTable + table: oauthauthorizationcode + - columns: [] + indexName: oauthauthorizationcode + indexType: index + operation: createIndex + table: oauthauthorizationcode_application_id + - columns: [] + indexName: oauthauthorizationcode + indexType: index + operation: createIndex + table: oauthauthorizationcode_code + - columns: + - name: id + nullable: false + - name: org_id + nullable: false + - name: uuid + nullable: false + - name: activating_user_id + nullable: true + - name: delegate_user_id + nullable: true + - name: delegate_team_id + nullable: true + - name: role_id + nullable: false + operation: createTable + table: permissionprototype + - columns: [] + indexName: permissionprototype + indexType: index + operation: createIndex + table: permissionprototype_activating_user_id + - columns: [] + indexName: permissionprototype + indexType: index + operation: createIndex + table: permissionprototype_delegate_team_id + - columns: [] + indexName: permissionprototype + indexType: index + operation: createIndex + table: permissionprototype_delegate_user_id + - columns: [] + indexName: permissionprototype + indexType: index + operation: createIndex + table: permissionprototype_org_id + - columns: [] + indexName: permissionprototype + indexType: index + operation: createIndex + table: permissionprototype_org_id_activating_user_id + - columns: [] + indexName: permissionprototype + indexType: index + operation: createIndex + table: permissionprototype_role_id + - columns: + - name: id + nullable: false + - name: repository_id + nullable: false + - name: count + nullable: false + - name: date + nullable: false + operation: createTable + table: repositoryactioncount + - columns: [] + indexName: repositoryactioncount + indexType: index + operation: createIndex + table: repositoryactioncount_date + - columns: [] + indexName: repositoryactioncount + indexType: index + operation: createIndex + table: repositoryactioncount_repository_id + - columns: [] + indexName: repositoryactioncount + indexType: unique + operation: createIndex + table: repositoryactioncount_repository_id_date + - columns: + - name: id + nullable: false + - name: repository_id + nullable: false + - name: email + nullable: false + - name: code + nullable: false + - name: confirmed + nullable: false + operation: createTable + table: repositoryauthorizedemail + - columns: [] + indexName: repositoryauthorizedemail + indexType: unique + operation: createIndex + table: repositoryauthorizedemail_code + - columns: [] + indexName: repositoryauthorizedemail + indexType: unique + operation: createIndex + table: repositoryauthorizedemail_email_repository_id + - columns: [] + indexName: repositoryauthorizedemail + indexType: index + operation: createIndex + table: repositoryauthorizedemail_repository_id + - columns: + - name: id + nullable: false + - name: uuid + nullable: false + - name: repository_id + nullable: false + - name: event_id + nullable: false + - name: method_id + nullable: false + - name: title + nullable: true + - name: config_json + nullable: false + - name: event_config_json + nullable: false + operation: createTable + table: repositorynotification + - columns: [] + indexName: repositorynotification + indexType: index + operation: createIndex + table: repositorynotification_event_id + - columns: [] + indexName: repositorynotification + indexType: index + operation: createIndex + table: repositorynotification_method_id + - columns: [] + indexName: repositorynotification + indexType: index + operation: createIndex + table: repositorynotification_repository_id + - columns: [] + indexName: repositorynotification + indexType: index + operation: createIndex + table: repositorynotification_uuid + - columns: + - name: id + nullable: false + - name: team_id + nullable: true + - name: user_id + nullable: true + - name: repository_id + nullable: false + - name: role_id + nullable: false + operation: createTable + table: repositorypermission + - columns: [] + indexName: repositorypermission + indexType: index + operation: createIndex + table: repositorypermission_repository_id + - columns: [] + indexName: repositorypermission + indexType: index + operation: createIndex + table: repositorypermission_role_id + - columns: [] + indexName: repositorypermission + indexType: index + operation: createIndex + table: repositorypermission_team_id + - columns: [] + indexName: repositorypermission + indexType: unique + operation: createIndex + table: repositorypermission_team_id_repository_id + - columns: [] + indexName: repositorypermission + indexType: index + operation: createIndex + table: repositorypermission_user_id + - columns: [] + indexName: repositorypermission + indexType: unique + operation: createIndex + table: repositorypermission_user_id_repository_id + - columns: + - name: id + nullable: false + - name: user_id + nullable: false + - name: repository_id + nullable: false + - name: created + nullable: false + operation: createTable + table: star + - columns: [] + indexName: star + indexType: index + operation: createIndex + table: star_repository_id + - columns: [] + indexName: star + indexType: index + operation: createIndex + table: star_user_id + - columns: [] + indexName: star + indexType: unique + operation: createIndex + table: star_user_id_repository_id + - columns: + - name: id + nullable: false + - name: user_id + nullable: false + - name: team_id + nullable: false + operation: createTable + table: teammember + - columns: [] + indexName: teammember + indexType: index + operation: createIndex + table: teammember_team_id + - columns: [] + indexName: teammember + indexType: index + operation: createIndex + table: teammember_user_id + - columns: [] + indexName: teammember + indexType: unique + operation: createIndex + table: teammember_user_id_team_id + - columns: + - name: id + nullable: false + - name: user_id + nullable: true + - name: email + nullable: true + - name: team_id + nullable: false + - name: inviter_id + nullable: false + - name: invite_token + nullable: false + operation: createTable + table: teammemberinvite + - columns: [] + indexName: teammemberinvite + indexType: index + operation: createIndex + table: teammemberinvite_inviter_id + - columns: [] + indexName: teammemberinvite + indexType: index + operation: createIndex + table: teammemberinvite_team_id + - columns: [] + indexName: teammemberinvite + indexType: index + operation: createIndex + table: teammemberinvite_user_id + - columns: + - name: id + nullable: false + - name: source_image_id + nullable: false + - name: derivative_id + nullable: false + - name: transformation_id + nullable: false + - name: uniqueness_hash + nullable: true + operation: createTable + table: derivedstorageforimage + - columns: [] + indexName: derivedstorageforimage + indexType: index + operation: createIndex + table: derivedstorageforimage_derivative_id + - columns: [] + indexName: derivedstorageforimage + indexType: index + operation: createIndex + table: derivedstorageforimage_source_image_id + - columns: [] + indexName: derivedstorageforimage + indexType: unique + operation: createIndex + table: uniqueness_index + - columns: [] + indexName: derivedstorageforimage + indexType: index + operation: createIndex + table: derivedstorageforimage_transformation_id + - columns: + - name: id + nullable: false + - name: uuid + nullable: false + - name: service_id + nullable: false + - name: repository_id + nullable: false + - name: connected_user_id + nullable: false + - name: auth_token + nullable: true + - name: private_key + nullable: true + - name: config + nullable: false + - name: write_token_id + nullable: true + - name: pull_robot_id + nullable: true + operation: createTable + table: repositorybuildtrigger + - columns: [] + indexName: repositorybuildtrigger + indexType: index + operation: createIndex + table: repositorybuildtrigger_connected_user_id + - columns: [] + indexName: repositorybuildtrigger + indexType: index + operation: createIndex + table: repositorybuildtrigger_pull_robot_id + - columns: [] + indexName: repositorybuildtrigger + indexType: index + operation: createIndex + table: repositorybuildtrigger_repository_id + - columns: [] + indexName: repositorybuildtrigger + indexType: index + operation: createIndex + table: repositorybuildtrigger_service_id + - columns: [] + indexName: repositorybuildtrigger + indexType: index + operation: createIndex + table: repositorybuildtrigger_write_token_id + - columns: + - name: id + nullable: false + - name: name + nullable: false + - name: image_id + nullable: false + - name: repository_id + nullable: false + - name: lifetime_start_ts + nullable: false + - name: lifetime_end_ts + nullable: true + - name: hidden + nullable: false + - name: reversion + nullable: false + operation: createTable + table: repositorytag + - columns: [] + indexName: repositorytag + indexType: index + operation: createIndex + table: repositorytag_image_id + - columns: [] + indexName: repositorytag + indexType: index + operation: createIndex + table: repositorytag_lifetime_end_ts + - columns: [] + indexName: repositorytag + indexType: index + operation: createIndex + table: repositorytag_repository_id + - columns: [] + indexName: repositorytag + indexType: index + operation: createIndex + table: repositorytag_repository_id_name + - columns: [] + indexName: repositorytag + indexType: unique + operation: createIndex + table: repositorytag_repository_id_name_lifetime_end_ts + - columns: + - name: id + nullable: false + - name: uuid + nullable: false + - name: repository_id + nullable: false + - name: access_token_id + nullable: false + - name: resource_key + nullable: true + - name: job_config + nullable: false + - name: phase + nullable: false + - name: started + nullable: false + - name: display_name + nullable: false + - name: trigger_id + nullable: true + - name: pull_robot_id + nullable: true + - name: logs_archived + nullable: false + - name: queue_id + nullable: true + operation: createTable + table: repositorybuild + - columns: [] + indexName: repositorybuild + indexType: index + operation: createIndex + table: repositorybuild_access_token_id + - columns: [] + indexName: repositorybuild + indexType: index + operation: createIndex + table: repositorybuild_pull_robot_id + - columns: [] + indexName: repositorybuild + indexType: index + operation: createIndex + table: repositorybuild_queue_id + - columns: [] + indexName: repositorybuild + indexType: index + operation: createIndex + table: repositorybuild_repository_id + - columns: [] + indexName: repositorybuild + indexType: index + operation: createIndex + table: repositorybuild_repository_id_started_phase + - columns: [] + indexName: repositorybuild + indexType: index + operation: createIndex + table: repositorybuild_resource_key + - columns: [] + indexName: repositorybuild + indexType: index + operation: createIndex + table: repositorybuild_started + - columns: [] + indexName: repositorybuild + indexType: index + operation: createIndex + table: repositorybuild_started_logs_archived_phase + - columns: [] + indexName: repositorybuild + indexType: index + operation: createIndex + table: repositorybuild_trigger_id + - columns: [] + indexName: repositorybuild + indexType: index + operation: createIndex + table: repositorybuild_uuid + - columns: + - name: id + nullable: false + - name: tag_id + nullable: false + - name: digest + nullable: false + - name: json_data + nullable: false + operation: createTable + table: tagmanifest + - columns: [] + indexName: tagmanifest + indexType: index + operation: createIndex + table: tagmanifest_digest + - columns: [] + indexName: tagmanifest + indexType: unique + operation: createIndex + table: tagmanifest_tag_id + - columns: + - name: id + nullable: false + - name: repository_id + nullable: false + - name: annotated_id + nullable: false + - name: label_id + nullable: false + operation: createTable + table: tagmanifestlabel + - columns: [] + indexName: tagmanifestlabel + indexType: index + operation: createIndex + table: tagmanifestlabel_annotated_id + - columns: [] + indexName: tagmanifestlabel + indexType: unique + operation: createIndex + table: tagmanifestlabel_annotated_id_label_id + - columns: [] + indexName: tagmanifestlabel + indexType: index + operation: createIndex + table: tagmanifestlabel_label_id + - columns: [] + indexName: tagmanifestlabel + indexType: index + operation: createIndex + table: tagmanifestlabel_repository_id diff --git a/data/migrations/dba_operator/c3d4b7ebcdf7-databasemigration.yaml b/data/migrations/dba_operator/c3d4b7ebcdf7-databasemigration.yaml new file mode 100644 index 000000000..02793d4f2 --- /dev/null +++ b/data/migrations/dba_operator/c3d4b7ebcdf7-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: c3d4b7ebcdf7 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - c3d4b7ebcdf7 + image: quay.io/quay/quay + name: c3d4b7ebcdf7 + previous: f30984525c86 + schemaHints: [] diff --git a/data/migrations/dba_operator/c91c564aad34-databasemigration.yaml b/data/migrations/dba_operator/c91c564aad34-databasemigration.yaml new file mode 100644 index 000000000..f66228700 --- /dev/null +++ b/data/migrations/dba_operator/c91c564aad34-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: c91c564aad34 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - c91c564aad34 + image: quay.io/quay/quay + name: c91c564aad34 + previous: 152bb29a1bb3 + schemaHints: [] diff --git a/data/migrations/dba_operator/cbc8177760d9-databasemigration.yaml b/data/migrations/dba_operator/cbc8177760d9-databasemigration.yaml new file mode 100644 index 000000000..311fa20c2 --- /dev/null +++ b/data/migrations/dba_operator/cbc8177760d9-databasemigration.yaml @@ -0,0 +1,21 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: cbc8177760d9 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - cbc8177760d9 + image: quay.io/quay/quay + name: cbc8177760d9 + previous: 7367229b38d9 + schemaHints: + - columns: + - name: location + nullable: true + operation: addColumn + table: user diff --git a/data/migrations/dba_operator/cc6778199cdb-databasemigration.yaml b/data/migrations/dba_operator/cc6778199cdb-databasemigration.yaml new file mode 100644 index 000000000..4c24374a0 --- /dev/null +++ b/data/migrations/dba_operator/cc6778199cdb-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: cc6778199cdb +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - cc6778199cdb + image: quay.io/quay/quay + name: cc6778199cdb + previous: c059b952ed76 + schemaHints: [] diff --git a/data/migrations/dba_operator/d17c695859ea-databasemigration.yaml b/data/migrations/dba_operator/d17c695859ea-databasemigration.yaml new file mode 100644 index 000000000..ff6c8c245 --- /dev/null +++ b/data/migrations/dba_operator/d17c695859ea-databasemigration.yaml @@ -0,0 +1,34 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: d17c695859ea +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - d17c695859ea + image: quay.io/quay/quay + name: d17c695859ea + previous: 5d463ea1e8a8 + schemaHints: + - operation: dropTable + table: tag + - operation: dropTable + table: manifestlistmanifest + - operation: dropTable + table: manifestlist + - operation: dropTable + table: manifestblob + - operation: dropTable + table: manifest + - operation: dropTable + table: blobplacement + - operation: dropTable + table: blob + - operation: dropTable + table: blobplacementlocation + - operation: dropTable + table: tagkind diff --git a/data/migrations/dba_operator/d42c175b439a-databasemigration.yaml b/data/migrations/dba_operator/d42c175b439a-databasemigration.yaml new file mode 100644 index 000000000..c5c04968d --- /dev/null +++ b/data/migrations/dba_operator/d42c175b439a-databasemigration.yaml @@ -0,0 +1,24 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: d42c175b439a +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - d42c175b439a + image: quay.io/quay/quay + name: d42c175b439a + previous: 3e8cc74a1e7b + schemaHints: + - indexName: queueitem_state_id + operation: dropIndex + table: queueitem + - columns: [] + indexName: queueitem + indexType: unique + operation: createIndex + table: queueitem_state_id diff --git a/data/migrations/dba_operator/d8989249f8f6-databasemigration.yaml b/data/migrations/dba_operator/d8989249f8f6-databasemigration.yaml new file mode 100644 index 000000000..5e4c9b06c --- /dev/null +++ b/data/migrations/dba_operator/d8989249f8f6-databasemigration.yaml @@ -0,0 +1,16 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: d8989249f8f6 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - d8989249f8f6 + image: quay.io/quay/quay + name: d8989249f8f6 + previous: dc4af11a5f90 + schemaHints: [] diff --git a/data/migrations/dba_operator/dc4af11a5f90-databasemigration.yaml b/data/migrations/dba_operator/dc4af11a5f90-databasemigration.yaml new file mode 100644 index 000000000..c2cbc8337 --- /dev/null +++ b/data/migrations/dba_operator/dc4af11a5f90-databasemigration.yaml @@ -0,0 +1,21 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: dc4af11a5f90 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - dc4af11a5f90 + image: quay.io/quay/quay + name: dc4af11a5f90 + previous: 53e2ac668296 + schemaHints: + - columns: + - name: number_of_failures + nullable: false + operation: addColumn + table: repositorynotification diff --git a/data/migrations/dba_operator/e184af42242d-databasemigration.yaml b/data/migrations/dba_operator/e184af42242d-databasemigration.yaml new file mode 100644 index 000000000..9372ddcff --- /dev/null +++ b/data/migrations/dba_operator/e184af42242d-databasemigration.yaml @@ -0,0 +1,31 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: e184af42242d +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - e184af42242d + image: quay.io/quay/quay + name: e184af42242d + previous: 6ec8726c0ace + schemaHints: + - columns: [] + indexName: permissionprototype + indexType: index + operation: createIndex + table: permissionprototype_uuid + - columns: [] + indexName: repositorybuildtrigger + indexType: index + operation: createIndex + table: repositorybuildtrigger_uuid + - columns: [] + indexName: user + indexType: index + operation: createIndex + table: user_uuid diff --git a/data/migrations/dba_operator/e2894a3a3c19-databasemigration.yaml b/data/migrations/dba_operator/e2894a3a3c19-databasemigration.yaml new file mode 100644 index 000000000..861e3e567 --- /dev/null +++ b/data/migrations/dba_operator/e2894a3a3c19-databasemigration.yaml @@ -0,0 +1,26 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: e2894a3a3c19 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - e2894a3a3c19 + image: quay.io/quay/quay + name: e2894a3a3c19 + previous: d42c175b439a + schemaHints: + - columns: [] + indexName: repository + indexType: index + operation: createIndex + table: repository_description__fulltext + - columns: [] + indexName: repository + indexType: index + operation: createIndex + table: repository_name__fulltext diff --git a/data/migrations/dba_operator/eafdeadcebc7-databasemigration.yaml b/data/migrations/dba_operator/eafdeadcebc7-databasemigration.yaml new file mode 100644 index 000000000..fb2f7f251 --- /dev/null +++ b/data/migrations/dba_operator/eafdeadcebc7-databasemigration.yaml @@ -0,0 +1,19 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: eafdeadcebc7 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - eafdeadcebc7 + image: quay.io/quay/quay + name: eafdeadcebc7 + previous: 9093adccc784 + schemaHints: + - indexName: manifestblob_manifest_id_blob_index + operation: dropIndex + table: manifestblob diff --git a/data/migrations/dba_operator/ed01e313d3cb-databasemigration.yaml b/data/migrations/dba_operator/ed01e313d3cb-databasemigration.yaml new file mode 100644 index 000000000..28cd148d1 --- /dev/null +++ b/data/migrations/dba_operator/ed01e313d3cb-databasemigration.yaml @@ -0,0 +1,21 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: ed01e313d3cb +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - ed01e313d3cb + image: quay.io/quay/quay + name: ed01e313d3cb + previous: c3d4b7ebcdf7 + schemaHints: + - columns: + - name: trust_enabled + nullable: false + operation: addColumn + table: repository diff --git a/data/migrations/dba_operator/f30984525c86-databasemigration.yaml b/data/migrations/dba_operator/f30984525c86-databasemigration.yaml new file mode 100644 index 000000000..3b5939cdd --- /dev/null +++ b/data/migrations/dba_operator/f30984525c86-databasemigration.yaml @@ -0,0 +1,37 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: f30984525c86 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - f30984525c86 + image: quay.io/quay/quay + name: f30984525c86 + previous: be8d1c402ce0 + schemaHints: + - columns: + - name: id + nullable: false + - name: repository_id + nullable: false + - name: score + nullable: false + - name: last_updated + nullable: true + operation: createTable + table: repositorysearchscore + - columns: [] + indexName: repositorysearchscore + indexType: unique + operation: createIndex + table: repositorysearchscore_repository_id + - columns: [] + indexName: repositorysearchscore + indexType: index + operation: createIndex + table: repositorysearchscore_score diff --git a/data/migrations/dba_operator/f5167870dd66-databasemigration.yaml b/data/migrations/dba_operator/f5167870dd66-databasemigration.yaml new file mode 100644 index 000000000..44a071dc7 --- /dev/null +++ b/data/migrations/dba_operator/f5167870dd66-databasemigration.yaml @@ -0,0 +1,48 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: f5167870dd66 +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - f5167870dd66 + image: quay.io/quay/quay + name: f5167870dd66 + previous: 45fd8b9869d4 + schemaHints: + - columns: [] + indexName: queueitem + indexType: index + operation: createIndex + table: queueitem_processing_expires_available + - columns: [] + indexName: queueitem + indexType: index + operation: createIndex + table: queueitem_pe_aafter_qname_rremaining_available + - columns: [] + indexName: queueitem + indexType: index + operation: createIndex + table: queueitem_pexpires_aafter_rremaining_available + - columns: [] + indexName: queueitem + indexType: index + operation: createIndex + table: queueitem_processing_expires_queue_name_available + - indexName: queueitem_available + operation: dropIndex + table: queueitem + - indexName: queueitem_available_after + operation: dropIndex + table: queueitem + - indexName: queueitem_processing_expires + operation: dropIndex + table: queueitem + - indexName: queueitem_retries_remaining + operation: dropIndex + table: queueitem diff --git a/data/migrations/dba_operator/faf752bd2e0a-databasemigration.yaml b/data/migrations/dba_operator/faf752bd2e0a-databasemigration.yaml new file mode 100644 index 000000000..af04b206a --- /dev/null +++ b/data/migrations/dba_operator/faf752bd2e0a-databasemigration.yaml @@ -0,0 +1,31 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: faf752bd2e0a +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - faf752bd2e0a + image: quay.io/quay/quay + name: faf752bd2e0a + previous: 6c7014e84a5e + schemaHints: + - columns: + - name: company + nullable: true + operation: addColumn + table: user + - columns: + - name: family_name + nullable: true + operation: addColumn + table: user + - columns: + - name: given_name + nullable: true + operation: addColumn + table: user diff --git a/data/migrations/dba_operator/fc47c1ec019f-databasemigration.yaml b/data/migrations/dba_operator/fc47c1ec019f-databasemigration.yaml new file mode 100644 index 000000000..97bb80e94 --- /dev/null +++ b/data/migrations/dba_operator/fc47c1ec019f-databasemigration.yaml @@ -0,0 +1,26 @@ + +--- +apiVersion: dbaoperator.app-sre.redhat.com/v1alpha1 +kind: DatabaseMigration +metadata: + name: fc47c1ec019f +spec: + migrationContainerSpec: + command: + - /quay-registry/quay-entrypoint.sh + - migrate + - fc47c1ec019f + image: quay.io/quay/quay + name: fc47c1ec019f + previous: f5167870dd66 + schemaHints: + - columns: + - name: state_id + nullable: false + operation: addColumn + table: queueitem + - columns: [] + indexName: queueitem + indexType: index + operation: createIndex + table: queueitem_state_id diff --git a/data/migrations/env.py b/data/migrations/env.py index e7ec1a67f..119948ccc 100644 --- a/data/migrations/env.py +++ b/data/migrations/env.py @@ -3,8 +3,9 @@ import os from logging.config import fileConfig from urllib import unquote +from functools import partial -from alembic import context +from alembic import context, op as alembic_op from alembic.script.revision import ResolutionError from alembic.util import CommandError from sqlalchemy import engine_from_config, pool @@ -15,7 +16,9 @@ from data.migrations.tester import NoopTester, PopulateTestDataTester from data.model.sqlalchemybridge import gen_sqlalchemy_metadata from release import GIT_HEAD, REGION, SERVICE from util.morecollections import AttrDict -from data.migrations.progress import PrometheusReporter, NullReporter +from util.parsing import truthy_bool +from data.migrations.progress import PrometheusReporter, NullReporter, ProgressWrapper +from data.migrations.dba_operator import Migration, OpLogger config = context.config @@ -89,10 +92,16 @@ def get_progress_reporter(): def report_success(ctx=None, step=None, heads=None, run_args=None): - progress_reporter = run_args["progress_reporter"] + progress_reporter = ctx.config.attributes["progress_reporter"] progress_reporter.report_version_complete(success=True) +def finish_migration(migration, ctx=None, step=None, heads=None, run_args=None): + write_dba_operator_migration( + migration, step.up_revision.revision, step.up_revision.down_revision + ) + + def run_migrations_offline(): """ Run migrations in 'offline' mode. @@ -107,9 +116,11 @@ def run_migrations_offline(): """ url = unquote(DB_URI) context.configure(url=url, target_metadata=target_metadata, transactional_ddl=True) + context.config.attributes["progress_reporter"] = progress_reporter + op = ProgressWrapper(alembic_op, NullReporter()) with context.begin_transaction(): - context.run_migrations(tables=tables, tester=get_tester(), progress_reporter=NullReporter()) + context.run_migrations(op=op, tables=tables, tester=get_tester()) def run_migrations_online(): @@ -119,33 +130,45 @@ def run_migrations_online(): In this scenario we need to create an Engine and associate a connection with the context. """ - if ( - isinstance(db.obj, SqliteDatabase) - and not "GENMIGRATE" in os.environ - and not "DB_URI" in os.environ - ): + if isinstance(db.obj, SqliteDatabase) and not "DB_URI" in os.environ: print "Skipping Sqlite migration!" return progress_reporter = get_progress_reporter() + context.config.attributes["progress_reporter"] = progress_reporter + op = ProgressWrapper(alembic_op, progress_reporter) + + migration = Migration() + version_apply_callback = report_success + if truthy_bool(context.get_x_argument(as_dictionary=True).get("generatedbaopmigrations", None)): + op = OpLogger(alembic_op, migration) + version_apply_callback = partial(finish_migration, migration) + engine = engine_from_config( config.get_section(config.config_ini_section), prefix="sqlalchemy.", poolclass=pool.NullPool ) + revision_to_migration = {} + + def process_revision_directives(context, revision, directives): + script = directives[0] + migration = Migration() + revision_to_migration[(script.rev_id, revision)] = migration + migration.add_hints_from_ops(script.upgrade_ops) + connection = engine.connect() context.configure( connection=connection, target_metadata=target_metadata, transactional_ddl=False, - on_version_apply=report_success, + on_version_apply=version_apply_callback, + process_revision_directives=process_revision_directives, ) try: with context.begin_transaction(): try: - context.run_migrations( - tables=tables, tester=get_tester(), progress_reporter=progress_reporter - ) + context.run_migrations(op=op, tables=tables, tester=get_tester()) except (CommandError, ResolutionError) as ex: if "No such revision" not in str(ex): raise @@ -164,6 +187,17 @@ def run_migrations_online(): finally: connection.close() + for (revision, previous_revision), migration in revision_to_migration.items(): + write_dba_operator_migration(migration, revision, previous_revision) + + +def write_dba_operator_migration(migration, revision, previous_revision): + migration_filename = "{}-databasemigration.yaml".format(revision) + output_filename = os.path.join("data", "migrations", "dba_operator", migration_filename) + with open(output_filename, "w") as migration_file: + migration_file.write("\n---\n") + migration.dump_yaml_and_reset(migration_file, revision, previous_revision) + if context.is_offline_mode(): run_migrations_offline() diff --git a/data/migrations/migration.sh b/data/migrations/migration.sh index bf8d234b6..803f21d21 100755 --- a/data/migrations/migration.sh +++ b/data/migrations/migration.sh @@ -75,7 +75,7 @@ down_postgres() { gen_migrate() { # Generate a database with the schema as defined by the existing alembic model. - QUAY_OVERRIDE_CONFIG=$1 PYTHONPATH=. alembic upgrade head + QUAY_OVERRIDE_CONFIG=$1 PYTHONPATH=. alembic -x generatedbaopmigrations=true upgrade head # Generate the migration to the current model. diff --git a/data/migrations/script.py.mako b/data/migrations/script.py.mako index afd540213..771caa2c1 100644 --- a/data/migrations/script.py.mako +++ b/data/migrations/script.py.mako @@ -10,18 +10,12 @@ Create Date: ${create_date} revision = ${repr(up_revision)} down_revision = ${repr(down_revision)} -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa ${imports if imports else ""} -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) - +def upgrade(op, tables, tester): ${upgrades if upgrades else "pass"} -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) - +def downgrade(op, tables, tester): ${downgrades if downgrades else "pass"} diff --git a/data/migrations/versions/0cf50323c78b_add_creation_date_to_user_table.py b/data/migrations/versions/0cf50323c78b_add_creation_date_to_user_table.py index f98bb6a9a..80729e31f 100644 --- a/data/migrations/versions/0cf50323c78b_add_creation_date_to_user_table.py +++ b/data/migrations/versions/0cf50323c78b_add_creation_date_to_user_table.py @@ -10,13 +10,10 @@ Create Date: 2018-03-09 13:19:41.903196 revision = "0cf50323c78b" down_revision = "87fbbc224f10" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.add_column("user", sa.Column("creation_date", sa.DateTime(), nullable=True)) # ### end Alembic commands ### @@ -26,8 +23,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_column("user", "creation_date") # ### end Alembic commands ### diff --git a/data/migrations/versions/10f45ee2310b_add_tag_tagkind_and_manifestchild_tables.py b/data/migrations/versions/10f45ee2310b_add_tag_tagkind_and_manifestchild_tables.py index 5c0132ef0..37bd91678 100644 --- a/data/migrations/versions/10f45ee2310b_add_tag_tagkind_and_manifestchild_tables.py +++ b/data/migrations/versions/10f45ee2310b_add_tag_tagkind_and_manifestchild_tables.py @@ -10,14 +10,11 @@ Create Date: 2018-10-29 15:22:53.552216 revision = "10f45ee2310b" down_revision = "13411de1c0ff" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from util.migrate import UTF8CharField -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_table( "tagkind", @@ -152,8 +149,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_table("tag") op.drop_table("manifestchild") diff --git a/data/migrations/versions/13411de1c0ff_remove_unique_from_tagmanifesttomanifest.py b/data/migrations/versions/13411de1c0ff_remove_unique_from_tagmanifesttomanifest.py index 3fd6146de..f3275ff81 100644 --- a/data/migrations/versions/13411de1c0ff_remove_unique_from_tagmanifesttomanifest.py +++ b/data/migrations/versions/13411de1c0ff_remove_unique_from_tagmanifesttomanifest.py @@ -10,13 +10,10 @@ Create Date: 2018-08-19 23:30:24.969549 revision = "13411de1c0ff" down_revision = "654e6df88b71" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # Note: Because of a restriction in MySQL, we cannot simply remove the index and re-add # it without the unique=False, nor can we simply alter the index. To make it work, we'd have to # remove the primary key on the field, so instead we simply drop the table entirely and @@ -63,6 +60,5 @@ def upgrade(tables, tester, progress_reporter): ) -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): pass diff --git a/data/migrations/versions/152bb29a1bb3_add_maximum_build_queue_count_setting_.py b/data/migrations/versions/152bb29a1bb3_add_maximum_build_queue_count_setting_.py index 6add1de3e..b9eea4066 100644 --- a/data/migrations/versions/152bb29a1bb3_add_maximum_build_queue_count_setting_.py +++ b/data/migrations/versions/152bb29a1bb3_add_maximum_build_queue_count_setting_.py @@ -10,14 +10,11 @@ Create Date: 2018-02-20 13:34:34.902415 revision = "152bb29a1bb3" down_revision = "cbc8177760d9" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.add_column("user", sa.Column("maximum_queued_builds_count", sa.Integer(), nullable=True)) # ### end Alembic commands ### @@ -27,8 +24,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_column("user", "maximum_queued_builds_count") # ### end Alembic commands ### diff --git a/data/migrations/versions/152edccba18c_make_blodupload_byte_count_not_nullable.py b/data/migrations/versions/152edccba18c_make_blodupload_byte_count_not_nullable.py index 83d91730f..9c9692d99 100644 --- a/data/migrations/versions/152edccba18c_make_blodupload_byte_count_not_nullable.py +++ b/data/migrations/versions/152edccba18c_make_blodupload_byte_count_not_nullable.py @@ -10,16 +10,12 @@ Create Date: 2018-02-23 12:41:25.571835 revision = "152edccba18c" down_revision = "c91c564aad34" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): op.alter_column("blobupload", "byte_count", existing_type=sa.BigInteger(), nullable=False) -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): op.alter_column("blobupload", "byte_count", existing_type=sa.BigInteger(), nullable=True) diff --git a/data/migrations/versions/1783530bee68_add_logentry2_table_quay_io_only.py b/data/migrations/versions/1783530bee68_add_logentry2_table_quay_io_only.py index f7e7e6e2d..89e005a06 100644 --- a/data/migrations/versions/1783530bee68_add_logentry2_table_quay_io_only.py +++ b/data/migrations/versions/1783530bee68_add_logentry2_table_quay_io_only.py @@ -10,13 +10,10 @@ Create Date: 2018-05-17 16:32:28.532264 revision = "1783530bee68" down_revision = "5b7503aada1b" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_table( "logentry2", @@ -56,8 +53,7 @@ def upgrade(tables, tester, progress_reporter): # ### end Alembic commands ### -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_table("logentry2") # ### end Alembic commands ### diff --git a/data/migrations/versions/17aff2e1354e_add_automatic_disable_of_build_triggers.py b/data/migrations/versions/17aff2e1354e_add_automatic_disable_of_build_triggers.py index 50fde0497..37335a1d8 100644 --- a/data/migrations/versions/17aff2e1354e_add_automatic_disable_of_build_triggers.py +++ b/data/migrations/versions/17aff2e1354e_add_automatic_disable_of_build_triggers.py @@ -10,14 +10,11 @@ Create Date: 2017-10-18 15:58:03.971526 revision = "17aff2e1354e" down_revision = "61cadbacb9fc" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.add_column( "repositorybuildtrigger", @@ -49,8 +46,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_column("repositorybuildtrigger", "successive_internal_error_count") op.drop_column("repositorybuildtrigger", "successive_failure_count") diff --git a/data/migrations/versions/224ce4c72c2f_add_last_accessed_field_to_user_table.py b/data/migrations/versions/224ce4c72c2f_add_last_accessed_field_to_user_table.py index 7cf741cd0..60ceb22e1 100644 --- a/data/migrations/versions/224ce4c72c2f_add_last_accessed_field_to_user_table.py +++ b/data/migrations/versions/224ce4c72c2f_add_last_accessed_field_to_user_table.py @@ -10,13 +10,10 @@ Create Date: 2018-03-12 22:44:07.070490 revision = "224ce4c72c2f" down_revision = "b547bc139ad8" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.add_column("user", sa.Column("last_accessed", sa.DateTime(), nullable=True)) op.create_index("user_last_accessed", "user", ["last_accessed"], unique=False) @@ -27,8 +24,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_index("user_last_accessed", table_name="user") op.drop_column("user", "last_accessed") diff --git a/data/migrations/versions/34c8ef052ec9_repo_mirror_columns.py b/data/migrations/versions/34c8ef052ec9_repo_mirror_columns.py index 8943f3b53..597541c4d 100644 --- a/data/migrations/versions/34c8ef052ec9_repo_mirror_columns.py +++ b/data/migrations/versions/34c8ef052ec9_repo_mirror_columns.py @@ -10,9 +10,6 @@ Create Date: 2019-10-07 13:11:20.424715 revision = "34c8ef052ec9" down_revision = "cc6778199cdb" -from alembic import op -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper from datetime import datetime import sqlalchemy as sa from sqlalchemy.dialects import mysql @@ -85,8 +82,7 @@ def _iterate(model_class, clause): break -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): from app import app logger.info("Migrating to external_reference from existing columns") @@ -154,8 +150,7 @@ def upgrade(tables, tester, progress_reporter): tester.populate_column("repomirrorconfig", "external_reference", tester.TestDataType.String) -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): """ This will downgrade existing data but may not exactly match previous data structure. If the diff --git a/data/migrations/versions/3e8cc74a1e7b_add_severity_and_media_type_to_global_.py b/data/migrations/versions/3e8cc74a1e7b_add_severity_and_media_type_to_global_.py index 7790f88fb..39e413599 100644 --- a/data/migrations/versions/3e8cc74a1e7b_add_severity_and_media_type_to_global_.py +++ b/data/migrations/versions/3e8cc74a1e7b_add_severity_and_media_type_to_global_.py @@ -10,14 +10,11 @@ Create Date: 2017-01-17 16:22:28.584237 revision = "3e8cc74a1e7b" down_revision = "fc47c1ec019f" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.add_column( "messages", sa.Column("media_type_id", sa.Integer(), nullable=False, server_default="1") @@ -54,8 +51,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_constraint(op.f("fk_messages_media_type_id_mediatype"), "messages", type_="foreignkey") op.drop_index("messages_uuid", table_name="messages") diff --git a/data/migrations/versions/45fd8b9869d4_add_notification_type.py b/data/migrations/versions/45fd8b9869d4_add_notification_type.py index 7e95b1ab8..f68b32c44 100644 --- a/data/migrations/versions/45fd8b9869d4_add_notification_type.py +++ b/data/migrations/versions/45fd8b9869d4_add_notification_type.py @@ -10,17 +10,12 @@ Create Date: 2016-12-01 12:02:19.724528 revision = "45fd8b9869d4" down_revision = "94836b099894" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper - -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): op.bulk_insert(tables.notificationkind, [{"name": "build_cancelled"},]) -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): op.execute( tables.notificationkind.delete().where( tables.notificationkind.c.name == op.inline_literal("build_cancelled") diff --git a/data/migrations/versions/481623ba00ba_add_index_on_logs_archived_on_.py b/data/migrations/versions/481623ba00ba_add_index_on_logs_archived_on_.py index 01cda799c..25d02cdec 100644 --- a/data/migrations/versions/481623ba00ba_add_index_on_logs_archived_on_.py +++ b/data/migrations/versions/481623ba00ba_add_index_on_logs_archived_on_.py @@ -10,12 +10,8 @@ Create Date: 2019-02-15 16:09:47.326805 revision = "481623ba00ba" down_revision = "b9045731c4de" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper - -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_index( "repositorybuild_logs_archived", "repositorybuild", ["logs_archived"], unique=False @@ -23,8 +19,7 @@ def upgrade(tables, tester, progress_reporter): # ### end Alembic commands ### -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_index("repositorybuild_logs_archived", table_name="repositorybuild") # ### end Alembic commands ### diff --git a/data/migrations/versions/49e1138ed12d_change_token_column_types.py b/data/migrations/versions/49e1138ed12d_change_token_column_types.py index 5ad94da87..b443aff89 100644 --- a/data/migrations/versions/49e1138ed12d_change_token_column_types.py +++ b/data/migrations/versions/49e1138ed12d_change_token_column_types.py @@ -9,13 +9,10 @@ Create Date: 2019-08-19 16:07:48.109889 revision = "49e1138ed12d" down_revision = "703298a825c2" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # Adjust existing fields to be nullable. op.alter_column("accesstoken", "code", nullable=True, existing_type=sa.String(length=255)) @@ -62,8 +59,7 @@ def upgrade(tables, tester, progress_reporter): ) -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): op.alter_column("accesstoken", "token_name", nullable=True, existing_type=sa.String(length=255)) op.alter_column("accesstoken", "token_code", nullable=True, existing_type=sa.String(length=255)) diff --git a/data/migrations/versions/4fd6b8463eb2_add_new_deletedrepository_tracking_table.py b/data/migrations/versions/4fd6b8463eb2_add_new_deletedrepository_tracking_table.py index 196f00618..3f71cf4f4 100644 --- a/data/migrations/versions/4fd6b8463eb2_add_new_deletedrepository_tracking_table.py +++ b/data/migrations/versions/4fd6b8463eb2_add_new_deletedrepository_tracking_table.py @@ -10,13 +10,10 @@ Create Date: 2019-12-22 14:58:34.375692 revision = "4fd6b8463eb2" down_revision = "34c8ef052ec9" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_table( @@ -43,8 +40,7 @@ def upgrade(tables, tester, progress_reporter): # ### end Alembic commands ### -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_table("deletedrepository") diff --git a/data/migrations/versions/5248ddf35167_repository_mirror.py b/data/migrations/versions/5248ddf35167_repository_mirror.py index a25b4e696..db8093df3 100644 --- a/data/migrations/versions/5248ddf35167_repository_mirror.py +++ b/data/migrations/versions/5248ddf35167_repository_mirror.py @@ -9,14 +9,11 @@ Create Date: 2019-06-25 16:22:36.310532 revision = "5248ddf35167" down_revision = "b918abdbee43" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): op.create_table( "repomirrorrule", sa.Column("id", sa.Integer(), nullable=False), @@ -178,8 +175,7 @@ def upgrade(tables, tester, progress_reporter): ) -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): op.drop_column(u"repository", "state") op.drop_table("repomirrorconfig") diff --git a/data/migrations/versions/53e2ac668296_remove_reference_to_subdir.py b/data/migrations/versions/53e2ac668296_remove_reference_to_subdir.py index 3aebec0f0..b3a382cfb 100644 --- a/data/migrations/versions/53e2ac668296_remove_reference_to_subdir.py +++ b/data/migrations/versions/53e2ac668296_remove_reference_to_subdir.py @@ -12,8 +12,6 @@ import json import logging from alembic.script.revision import RevisionError from alembic.util import CommandError -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql @@ -23,8 +21,7 @@ down_revision = "ed01e313d3cb" log = logging.getLogger(__name__) -def run_migration(migrate_function, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def run_migration(migrate_function, op): conn = op.get_bind() triggers = conn.execute("SELECT id, config FROM repositorybuildtrigger") for trigger in triggers: @@ -37,12 +34,12 @@ def run_migration(migrate_function, progress_reporter): log.warning("Failed to update build trigger %s with exception: ", trigger[0], e) -def upgrade(tables, tester, progress_reporter): - run_migration(delete_subdir, progress_reporter) +def upgrade(op, tables, tester): + run_migration(delete_subdir, op) -def downgrade(tables, tester, progress_reporter): - run_migration(add_subdir, progress_reporter) +def downgrade(op, tables, tester): + run_migration(add_subdir, op) def delete_subdir(config): diff --git a/data/migrations/versions/54492a68a3cf_add_namespacegeorestriction_table.py b/data/migrations/versions/54492a68a3cf_add_namespacegeorestriction_table.py index 5c33dda3c..4b53625a4 100644 --- a/data/migrations/versions/54492a68a3cf_add_namespacegeorestriction_table.py +++ b/data/migrations/versions/54492a68a3cf_add_namespacegeorestriction_table.py @@ -10,14 +10,11 @@ Create Date: 2018-12-05 15:12:14.201116 revision = "54492a68a3cf" down_revision = "c00a1f15968b" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_table( "namespacegeorestriction", @@ -64,8 +61,7 @@ def upgrade(tables, tester, progress_reporter): ) -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_table("namespacegeorestriction") # ### end Alembic commands ### diff --git a/data/migrations/versions/5b7503aada1b_cleanup_old_robots.py b/data/migrations/versions/5b7503aada1b_cleanup_old_robots.py index 99c18f10e..ba5913c43 100644 --- a/data/migrations/versions/5b7503aada1b_cleanup_old_robots.py +++ b/data/migrations/versions/5b7503aada1b_cleanup_old_robots.py @@ -10,19 +10,15 @@ Create Date: 2018-05-09 17:18:52.230504 revision = "5b7503aada1b" down_revision = "224ce4c72c2f" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from util.migrate.cleanup_old_robots import cleanup_old_robots -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): cleanup_old_robots() -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # Nothing to do. pass diff --git a/data/migrations/versions/5cbbfc95bac7_remove_oci_tables_not_used_by_cnr_the_.py b/data/migrations/versions/5cbbfc95bac7_remove_oci_tables_not_used_by_cnr_the_.py index e9ef90a8d..8bc49dc58 100644 --- a/data/migrations/versions/5cbbfc95bac7_remove_oci_tables_not_used_by_cnr_the_.py +++ b/data/migrations/versions/5cbbfc95bac7_remove_oci_tables_not_used_by_cnr_the_.py @@ -10,15 +10,12 @@ Create Date: 2018-05-23 17:28:40.114433 revision = "5cbbfc95bac7" down_revision = "1783530bee68" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql from util.migrate import UTF8LongText, UTF8CharField -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_table("derivedimage") op.drop_table("manifestlabel") @@ -31,8 +28,7 @@ def upgrade(tables, tester, progress_reporter): # ### end Alembic commands ### -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_table( "manifestlayer", diff --git a/data/migrations/versions/5d463ea1e8a8_backfill_new_appr_tables.py b/data/migrations/versions/5d463ea1e8a8_backfill_new_appr_tables.py index 12febdd20..d847678e3 100644 --- a/data/migrations/versions/5d463ea1e8a8_backfill_new_appr_tables.py +++ b/data/migrations/versions/5d463ea1e8a8_backfill_new_appr_tables.py @@ -10,14 +10,11 @@ Create Date: 2018-07-08 10:01:19.756126 revision = "5d463ea1e8a8" down_revision = "610320e9dacf" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from util.migrate.table_ops import copy_table_contents -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): conn = op.get_bind() copy_table_contents("blob", "apprblob", conn) @@ -29,6 +26,5 @@ def upgrade(tables, tester, progress_reporter): copy_table_contents("tag", "apprtag", conn) -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): pass diff --git a/data/migrations/versions/610320e9dacf_add_new_appr_specific_tables.py b/data/migrations/versions/610320e9dacf_add_new_appr_specific_tables.py index 16fb46ab3..046d18164 100644 --- a/data/migrations/versions/610320e9dacf_add_new_appr_specific_tables.py +++ b/data/migrations/versions/610320e9dacf_add_new_appr_specific_tables.py @@ -10,15 +10,12 @@ Create Date: 2018-05-24 16:46:13.514562 revision = "610320e9dacf" down_revision = "5cbbfc95bac7" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from util.migrate.table_ops import copy_table_contents -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_table( "apprblobplacementlocation", @@ -320,8 +317,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_table("apprtag") op.drop_table("apprmanifestlistmanifest") diff --git a/data/migrations/versions/61cadbacb9fc_add_ability_for_build_triggers_to_be_.py b/data/migrations/versions/61cadbacb9fc_add_ability_for_build_triggers_to_be_.py index 84244a525..27a6caf93 100644 --- a/data/migrations/versions/61cadbacb9fc_add_ability_for_build_triggers_to_be_.py +++ b/data/migrations/versions/61cadbacb9fc_add_ability_for_build_triggers_to_be_.py @@ -10,14 +10,11 @@ Create Date: 2017-10-18 12:07:26.190901 revision = "61cadbacb9fc" down_revision = "b4c2d45bc132" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_table( "disablereason", @@ -63,8 +60,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_constraint( op.f("fk_repositorybuildtrigger_disabled_reason_id_disablereason"), diff --git a/data/migrations/versions/654e6df88b71_change_manifest_bytes_to_a_utf8_text_.py b/data/migrations/versions/654e6df88b71_change_manifest_bytes_to_a_utf8_text_.py index 2b239fc2d..6ebd20ca0 100644 --- a/data/migrations/versions/654e6df88b71_change_manifest_bytes_to_a_utf8_text_.py +++ b/data/migrations/versions/654e6df88b71_change_manifest_bytes_to_a_utf8_text_.py @@ -10,18 +10,14 @@ Create Date: 2018-08-15 09:58:46.109277 revision = "654e6df88b71" down_revision = "eafdeadcebc7" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from util.migrate import UTF8LongText -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): op.alter_column("manifest", "manifest_bytes", existing_type=sa.Text(), type_=UTF8LongText()) -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): op.alter_column("manifest", "manifest_bytes", existing_type=UTF8LongText(), type_=sa.Text()) diff --git a/data/migrations/versions/67f0abd172ae_add_tagtorepositorytag_table.py b/data/migrations/versions/67f0abd172ae_add_tagtorepositorytag_table.py index cf7d849ff..f2b5b88e8 100644 --- a/data/migrations/versions/67f0abd172ae_add_tagtorepositorytag_table.py +++ b/data/migrations/versions/67f0abd172ae_add_tagtorepositorytag_table.py @@ -10,14 +10,11 @@ Create Date: 2018-10-30 11:31:06.615488 revision = "67f0abd172ae" down_revision = "10f45ee2310b" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_table( "tagtorepositorytag", @@ -62,8 +59,7 @@ def upgrade(tables, tester, progress_reporter): ) -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_table("tagtorepositorytag") # ### end Alembic commands ### diff --git a/data/migrations/versions/6c21e2cfb8b6_change_logentry_to_use_a_biginteger_as_.py b/data/migrations/versions/6c21e2cfb8b6_change_logentry_to_use_a_biginteger_as_.py index 5fea6bb51..476862755 100644 --- a/data/migrations/versions/6c21e2cfb8b6_change_logentry_to_use_a_biginteger_as_.py +++ b/data/migrations/versions/6c21e2cfb8b6_change_logentry_to_use_a_biginteger_as_.py @@ -10,13 +10,10 @@ Create Date: 2018-07-27 16:30:02.877346 revision = "6c21e2cfb8b6" down_revision = "d17c695859ea" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): op.alter_column( table_name="logentry", column_name="id", @@ -26,8 +23,7 @@ def upgrade(tables, tester, progress_reporter): ) -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): op.alter_column( table_name="logentry", column_name="id", diff --git a/data/migrations/versions/6c7014e84a5e_add_user_prompt_support.py b/data/migrations/versions/6c7014e84a5e_add_user_prompt_support.py index 30bf1ec70..7c8d10823 100644 --- a/data/migrations/versions/6c7014e84a5e_add_user_prompt_support.py +++ b/data/migrations/versions/6c7014e84a5e_add_user_prompt_support.py @@ -10,13 +10,10 @@ Create Date: 2016-10-31 16:26:31.447705 revision = "6c7014e84a5e" down_revision = "c156deb8845d" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): ### commands auto generated by Alembic - please adjust! ### op.create_table( "userpromptkind", @@ -54,8 +51,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): ### commands auto generated by Alembic - please adjust! ### op.drop_table("userprompt") op.drop_table("userpromptkind") diff --git a/data/migrations/versions/6ec8726c0ace_add_logentry3_table.py b/data/migrations/versions/6ec8726c0ace_add_logentry3_table.py index e16be19ce..600b9885a 100644 --- a/data/migrations/versions/6ec8726c0ace_add_logentry3_table.py +++ b/data/migrations/versions/6ec8726c0ace_add_logentry3_table.py @@ -10,14 +10,11 @@ Create Date: 2019-01-03 13:41:02.897957 revision = "6ec8726c0ace" down_revision = "54492a68a3cf" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_table( "logentry3", @@ -47,8 +44,7 @@ def upgrade(tables, tester, progress_reporter): # ### end Alembic commands ### -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_table("logentry3") # ### end Alembic commands ### diff --git a/data/migrations/versions/703298a825c2_backfill_new_encrypted_fields.py b/data/migrations/versions/703298a825c2_backfill_new_encrypted_fields.py index b4a303b8e..d270b355c 100644 --- a/data/migrations/versions/703298a825c2_backfill_new_encrypted_fields.py +++ b/data/migrations/versions/703298a825c2_backfill_new_encrypted_fields.py @@ -24,8 +24,6 @@ from peewee import ( TextField, IntegerField, ) -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa @@ -127,8 +125,7 @@ class OAuthApplication(BaseModel): client_secret = CharField(default=random_string_generator(length=40)) -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # NOTE: Disconnects the Alembic database connection. We do this because the Peewee calls below # use a *different* connection, and if we leave the alembic connection open, it'll time out. @@ -313,6 +310,5 @@ def upgrade(tables, tester, progress_reporter): ) == 0 -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): pass diff --git a/data/migrations/versions/7367229b38d9_add_support_for_app_specific_tokens.py b/data/migrations/versions/7367229b38d9_add_support_for_app_specific_tokens.py index e3d7319dc..846ab97dc 100644 --- a/data/migrations/versions/7367229b38d9_add_support_for_app_specific_tokens.py +++ b/data/migrations/versions/7367229b38d9_add_support_for_app_specific_tokens.py @@ -10,15 +10,12 @@ Create Date: 2017-12-12 13:15:42.419764 revision = "7367229b38d9" down_revision = "d8989249f8f6" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql from util.migrate import UTF8CharField -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_table( "appspecificauthtoken", @@ -71,8 +68,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_table("appspecificauthtoken") # ### end Alembic commands ### diff --git a/data/migrations/versions/7a525c68eb13_add_oci_app_models.py b/data/migrations/versions/7a525c68eb13_add_oci_app_models.py index 818054a37..03a266c9c 100644 --- a/data/migrations/versions/7a525c68eb13_add_oci_app_models.py +++ b/data/migrations/versions/7a525c68eb13_add_oci_app_models.py @@ -10,16 +10,13 @@ Create Date: 2017-01-24 16:25:52.170277 revision = "7a525c68eb13" down_revision = "e2894a3a3c19" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql from sqlalchemy.sql import table, column from util.migrate import UTF8LongText, UTF8CharField -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): op.create_table( "tagkind", sa.Column("id", sa.Integer(), nullable=False), @@ -484,8 +481,7 @@ def upgrade(tables, tester, progress_reporter): ) -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): op.drop_table("manifestlayerscan") op.drop_table("manifestlayerdockerv1") op.drop_table("tag") diff --git a/data/migrations/versions/87fbbc224f10_add_disabled_datetime_to_trigger.py b/data/migrations/versions/87fbbc224f10_add_disabled_datetime_to_trigger.py index ac52f9d05..310ae0d06 100644 --- a/data/migrations/versions/87fbbc224f10_add_disabled_datetime_to_trigger.py +++ b/data/migrations/versions/87fbbc224f10_add_disabled_datetime_to_trigger.py @@ -10,14 +10,11 @@ Create Date: 2017-10-24 14:06:37.658705 revision = "87fbbc224f10" down_revision = "17aff2e1354e" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.add_column( "repositorybuildtrigger", sa.Column("disabled_datetime", sa.DateTime(), nullable=True) @@ -37,8 +34,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_index("repositorybuildtrigger_disabled_datetime", table_name="repositorybuildtrigger") op.drop_column("repositorybuildtrigger", "disabled_datetime") diff --git a/data/migrations/versions/9093adccc784_add_v2_2_data_models_for_manifest_.py b/data/migrations/versions/9093adccc784_add_v2_2_data_models_for_manifest_.py index eef2d36fb..b4a2256cc 100644 --- a/data/migrations/versions/9093adccc784_add_v2_2_data_models_for_manifest_.py +++ b/data/migrations/versions/9093adccc784_add_v2_2_data_models_for_manifest_.py @@ -10,14 +10,11 @@ Create Date: 2018-08-06 16:07:50.222749 revision = "9093adccc784" down_revision = "6c21e2cfb8b6" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from image.docker.schema1 import DOCKER_SCHEMA1_CONTENT_TYPES -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_table( "manifest", @@ -301,8 +298,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): for media_type in DOCKER_SCHEMA1_CONTENT_TYPES: op.execute( tables.mediatype.delete().where( diff --git a/data/migrations/versions/94836b099894_create_new_notification_type.py b/data/migrations/versions/94836b099894_create_new_notification_type.py index 5aa8a1edb..c044fa6e5 100644 --- a/data/migrations/versions/94836b099894_create_new_notification_type.py +++ b/data/migrations/versions/94836b099894_create_new_notification_type.py @@ -10,17 +10,12 @@ Create Date: 2016-11-30 10:29:51.519278 revision = "94836b099894" down_revision = "faf752bd2e0a" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper - -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): op.bulk_insert(tables.externalnotificationevent, [{"name": "build_cancelled"},]) -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): op.execute( tables.externalnotificationevent.delete().where( tables.externalnotificationevent.c.name == op.inline_literal("build_cancelled") diff --git a/data/migrations/versions/a6c463dfb9fe_back_fill_build_expand_config.py b/data/migrations/versions/a6c463dfb9fe_back_fill_build_expand_config.py index 298e05db1..48376ee39 100644 --- a/data/migrations/versions/a6c463dfb9fe_back_fill_build_expand_config.py +++ b/data/migrations/versions/a6c463dfb9fe_back_fill_build_expand_config.py @@ -17,16 +17,12 @@ from data.database import BaseModel revision = "a6c463dfb9fe" down_revision = "b4df55dea4b3" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper - class RepositoryBuildTrigger(BaseModel): config = TextField(default="{}") -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): if not app.config.get("SETUP_COMPLETE", False): return @@ -37,8 +33,7 @@ def upgrade(tables, tester, progress_reporter): repositoryBuildTrigger.save() -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): if not app.config.get("SETUP_COMPLETE", False): return diff --git a/data/migrations/versions/b4c2d45bc132_add_deleted_namespace_table.py b/data/migrations/versions/b4c2d45bc132_add_deleted_namespace_table.py index 34e9806c8..fc4dd1d34 100644 --- a/data/migrations/versions/b4c2d45bc132_add_deleted_namespace_table.py +++ b/data/migrations/versions/b4c2d45bc132_add_deleted_namespace_table.py @@ -10,13 +10,10 @@ Create Date: 2018-02-27 11:43:02.329941 revision = "b4c2d45bc132" down_revision = "152edccba18c" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_table( "deletednamespace", @@ -60,8 +57,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_table("deletednamespace") # ### end Alembic commands ### diff --git a/data/migrations/versions/b4df55dea4b3_add_repository_kind.py b/data/migrations/versions/b4df55dea4b3_add_repository_kind.py index a5fd0fa27..64ef33382 100644 --- a/data/migrations/versions/b4df55dea4b3_add_repository_kind.py +++ b/data/migrations/versions/b4df55dea4b3_add_repository_kind.py @@ -10,14 +10,11 @@ Create Date: 2017-03-19 12:59:41.484430 revision = "b4df55dea4b3" down_revision = "b8ae68ad3e52" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): op.create_table( "repositorykind", sa.Column("id", sa.Integer(), nullable=False), @@ -47,8 +44,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): op.drop_constraint( op.f("fk_repository_kind_id_repositorykind"), "repository", type_="foreignkey" ) diff --git a/data/migrations/versions/b547bc139ad8_add_robotaccountmetadata_table.py b/data/migrations/versions/b547bc139ad8_add_robotaccountmetadata_table.py index 0f0cbd3e5..b99511a10 100644 --- a/data/migrations/versions/b547bc139ad8_add_robotaccountmetadata_table.py +++ b/data/migrations/versions/b547bc139ad8_add_robotaccountmetadata_table.py @@ -10,14 +10,11 @@ Create Date: 2018-03-09 15:50:48.298880 revision = "b547bc139ad8" down_revision = "0cf50323c78b" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from util.migrate import UTF8CharField -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_table( "robotaccountmetadata", @@ -52,8 +49,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_table("robotaccountmetadata") # ### end Alembic commands ### diff --git a/data/migrations/versions/b8ae68ad3e52_change_blobupload_fields_to_bigintegers_.py b/data/migrations/versions/b8ae68ad3e52_change_blobupload_fields_to_bigintegers_.py index ae8e0aeaf..a76b86e96 100644 --- a/data/migrations/versions/b8ae68ad3e52_change_blobupload_fields_to_bigintegers_.py +++ b/data/migrations/versions/b8ae68ad3e52_change_blobupload_fields_to_bigintegers_.py @@ -10,14 +10,11 @@ Create Date: 2017-02-27 11:26:49.182349 revision = "b8ae68ad3e52" down_revision = "7a525c68eb13" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): op.alter_column("blobupload", "byte_count", existing_type=sa.Integer(), type_=sa.BigInteger()) op.alter_column( "blobupload", "uncompressed_byte_count", existing_type=sa.Integer(), type_=sa.BigInteger() @@ -29,8 +26,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### population of test data ### # tester.populate_column("blobupload", "byte_count", tester.TestDataType.Integer) tester.populate_column("blobupload", "uncompressed_byte_count", tester.TestDataType.Integer) diff --git a/data/migrations/versions/b9045731c4de_add_lifetime_indexes_to_tag_tables.py b/data/migrations/versions/b9045731c4de_add_lifetime_indexes_to_tag_tables.py index cd1c58880..2924b5d0a 100644 --- a/data/migrations/versions/b9045731c4de_add_lifetime_indexes_to_tag_tables.py +++ b/data/migrations/versions/b9045731c4de_add_lifetime_indexes_to_tag_tables.py @@ -10,12 +10,8 @@ Create Date: 2019-02-14 17:18:40.474310 revision = "b9045731c4de" down_revision = "e184af42242d" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper - -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_index( "repositorytag_repository_id_lifetime_end_ts", @@ -45,8 +41,7 @@ def upgrade(tables, tester, progress_reporter): # ### end Alembic commands ### -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_index("tag_repository_id_lifetime_end_ms", table_name="tag") op.drop_index("repositorytag_repository_id_lifetime_end_ts", table_name="repositorytag") diff --git a/data/migrations/versions/b918abdbee43_run_full_tag_backfill.py b/data/migrations/versions/b918abdbee43_run_full_tag_backfill.py index 5a737966e..e0bf97338 100644 --- a/data/migrations/versions/b918abdbee43_run_full_tag_backfill.py +++ b/data/migrations/versions/b918abdbee43_run_full_tag_backfill.py @@ -22,7 +22,7 @@ from util.log import logfile_path logger = logging.getLogger(__name__) -def upgrade(tables, tester, progress_reporter): +def upgrade(op, tables, tester): if not app.config.get("SETUP_COMPLETE", False): return @@ -69,6 +69,6 @@ def upgrade(tables, tester, progress_reporter): backfill_tag(t) -def downgrade(tables, tester, progress_reporter): +def downgrade(op, tables, tester): # Nothing to do. pass diff --git a/data/migrations/versions/be8d1c402ce0_add_teamsync_table.py b/data/migrations/versions/be8d1c402ce0_add_teamsync_table.py index 78561acab..db367df86 100644 --- a/data/migrations/versions/be8d1c402ce0_add_teamsync_table.py +++ b/data/migrations/versions/be8d1c402ce0_add_teamsync_table.py @@ -10,14 +10,11 @@ Create Date: 2017-02-23 13:34:52.356812 revision = "be8d1c402ce0" down_revision = "a6c463dfb9fe" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from util.migrate import UTF8LongText -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): ### commands auto generated by Alembic - please adjust! ### op.create_table( "teamsync", @@ -52,8 +49,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): ### commands auto generated by Alembic - please adjust! ### op.drop_table("teamsync") ### end Alembic commands ### diff --git a/data/migrations/versions/c00a1f15968b_add_schema2_media_types.py b/data/migrations/versions/c00a1f15968b_add_schema2_media_types.py index 859b7758f..577f6729d 100644 --- a/data/migrations/versions/c00a1f15968b_add_schema2_media_types.py +++ b/data/migrations/versions/c00a1f15968b_add_schema2_media_types.py @@ -12,18 +12,13 @@ Create Date: 2018-11-13 09:20:21.968503 revision = "c00a1f15968b" down_revision = "67f0abd172ae" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper - -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): for media_type in DOCKER_SCHEMA2_CONTENT_TYPES: op.bulk_insert(tables.mediatype, [{"name": media_type},]) -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): for media_type in DOCKER_SCHEMA2_CONTENT_TYPES: op.execute( tables.mediatype.delete().where( diff --git a/data/migrations/versions/c059b952ed76_remove_unencrypted_fields_and_data.py b/data/migrations/versions/c059b952ed76_remove_unencrypted_fields_and_data.py index d2af9890a..b1609b83b 100644 --- a/data/migrations/versions/c059b952ed76_remove_unencrypted_fields_and_data.py +++ b/data/migrations/versions/c059b952ed76_remove_unencrypted_fields_and_data.py @@ -13,8 +13,6 @@ down_revision = "49e1138ed12d" import logging import uuid -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from data.database import FederatedLogin, User, RobotAccountToken @@ -23,8 +21,7 @@ from data.database import FederatedLogin, User, RobotAccountToken logger = logging.getLogger(__name__) -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_index("oauthaccesstoken_refresh_token", table_name="oauthaccesstoken") op.drop_column(u"oauthaccesstoken", "refresh_token") @@ -82,8 +79,7 @@ def upgrade(tables, tester, progress_reporter): break -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.add_column( u"oauthaccesstoken", sa.Column("refresh_token", sa.String(length=255), nullable=True) diff --git a/data/migrations/versions/c13c8052f7a6_add_new_fields_and_tables_for_encrypted_.py b/data/migrations/versions/c13c8052f7a6_add_new_fields_and_tables_for_encrypted_.py index b8cb75789..b81be19ce 100644 --- a/data/migrations/versions/c13c8052f7a6_add_new_fields_and_tables_for_encrypted_.py +++ b/data/migrations/versions/c13c8052f7a6_add_new_fields_and_tables_for_encrypted_.py @@ -10,13 +10,10 @@ Create Date: 2019-08-19 15:59:36.269155 revision = "c13c8052f7a6" down_revision = "5248ddf35167" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_table( "robotaccounttoken", @@ -115,8 +112,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_column(u"repositorybuildtrigger", "secure_private_key") op.drop_column(u"repositorybuildtrigger", "secure_auth_token") diff --git a/data/migrations/versions/c156deb8845d_reset_our_migrations_with_a_required_.py b/data/migrations/versions/c156deb8845d_reset_our_migrations_with_a_required_.py index 410ce556f..715673959 100644 --- a/data/migrations/versions/c156deb8845d_reset_our_migrations_with_a_required_.py +++ b/data/migrations/versions/c156deb8845d_reset_our_migrations_with_a_required_.py @@ -10,15 +10,12 @@ Create Date: 2016-11-08 11:58:11.110762 revision = "c156deb8845d" down_revision = None -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from util.migrate import UTF8LongText, UTF8CharField from datetime import datetime -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): now = datetime.now().strftime("'%Y-%m-%d %H:%M:%S'") op.create_table( @@ -1823,8 +1820,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): op.drop_table("tagmanifestlabel") op.drop_table("tagmanifest") op.drop_table("repositorybuild") diff --git a/data/migrations/versions/c3d4b7ebcdf7_backfill_repositorysearchscore_table.py b/data/migrations/versions/c3d4b7ebcdf7_backfill_repositorysearchscore_table.py index 2a6eebade..15f5270bb 100644 --- a/data/migrations/versions/c3d4b7ebcdf7_backfill_repositorysearchscore_table.py +++ b/data/migrations/versions/c3d4b7ebcdf7_backfill_repositorysearchscore_table.py @@ -10,13 +10,10 @@ Create Date: 2017-04-13 12:01:59.572775 revision = "c3d4b7ebcdf7" down_revision = "f30984525c86" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # Add a 0 entry into the RepositorySearchScore table for each repository that isn't present conn = op.get_bind() conn.execute( @@ -25,6 +22,5 @@ def upgrade(tables, tester, progress_reporter): ) -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): pass diff --git a/data/migrations/versions/c91c564aad34_drop_checksum_on_imagestorage.py b/data/migrations/versions/c91c564aad34_drop_checksum_on_imagestorage.py index 1a9b7fefb..0ddcbee40 100644 --- a/data/migrations/versions/c91c564aad34_drop_checksum_on_imagestorage.py +++ b/data/migrations/versions/c91c564aad34_drop_checksum_on_imagestorage.py @@ -10,16 +10,12 @@ Create Date: 2018-02-21 12:17:52.405644 revision = "c91c564aad34" down_revision = "152bb29a1bb3" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): op.drop_column("imagestorage", "checksum") -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): op.add_column("imagestorage", sa.Column("checksum", sa.String(length=255), nullable=True)) diff --git a/data/migrations/versions/cbc8177760d9_add_user_location_field.py b/data/migrations/versions/cbc8177760d9_add_user_location_field.py index 8b53a2d59..59103573c 100644 --- a/data/migrations/versions/cbc8177760d9_add_user_location_field.py +++ b/data/migrations/versions/cbc8177760d9_add_user_location_field.py @@ -10,15 +10,12 @@ Create Date: 2018-02-02 17:39:16.589623 revision = "cbc8177760d9" down_revision = "7367229b38d9" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql from util.migrate import UTF8CharField -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): op.add_column("user", sa.Column("location", UTF8CharField(length=255), nullable=True)) # ### population of test data ### # @@ -26,6 +23,5 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): op.drop_column("user", "location") diff --git a/data/migrations/versions/cc6778199cdb_repository_mirror_notification.py b/data/migrations/versions/cc6778199cdb_repository_mirror_notification.py index fe04a0910..18de8bafd 100644 --- a/data/migrations/versions/cc6778199cdb_repository_mirror_notification.py +++ b/data/migrations/versions/cc6778199cdb_repository_mirror_notification.py @@ -10,14 +10,11 @@ Create Date: 2019-10-03 17:41:23.316914 revision = "cc6778199cdb" down_revision = "c059b952ed76" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): op.bulk_insert( tables.notificationkind, @@ -37,8 +34,7 @@ def upgrade(tables, tester, progress_reporter): ) -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): op.execute( tables.notificationkind.delete().where( diff --git a/data/migrations/versions/d17c695859ea_delete_old_appr_tables.py b/data/migrations/versions/d17c695859ea_delete_old_appr_tables.py index 03f21b071..82461bfe5 100644 --- a/data/migrations/versions/d17c695859ea_delete_old_appr_tables.py +++ b/data/migrations/versions/d17c695859ea_delete_old_appr_tables.py @@ -10,15 +10,12 @@ Create Date: 2018-07-16 15:21:11.593040 revision = "d17c695859ea" down_revision = "5d463ea1e8a8" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.sql import table, column from util.migrate import UTF8LongText, UTF8CharField -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_table("tag") op.drop_table("manifestlistmanifest") @@ -32,8 +29,7 @@ def upgrade(tables, tester, progress_reporter): # ### end Alembic commands ### -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_table( "tagkind", diff --git a/data/migrations/versions/d42c175b439a_backfill_state_id_and_make_it_unique.py b/data/migrations/versions/d42c175b439a_backfill_state_id_and_make_it_unique.py index 251a20f55..1c2f5c6a7 100644 --- a/data/migrations/versions/d42c175b439a_backfill_state_id_and_make_it_unique.py +++ b/data/migrations/versions/d42c175b439a_backfill_state_id_and_make_it_unique.py @@ -10,14 +10,11 @@ Create Date: 2017-01-18 15:11:01.635632 revision = "d42c175b439a" down_revision = "3e8cc74a1e7b" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # Backfill the queueitem table's state_id field with unique values for all entries which are # empty. conn = op.get_bind() @@ -29,8 +26,7 @@ def upgrade(tables, tester, progress_reporter): # ### end Alembic commands ### -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_index("queueitem_state_id", table_name="queueitem") op.create_index("queueitem_state_id", "queueitem", ["state_id"], unique=False) diff --git a/data/migrations/versions/d8989249f8f6_add_change_tag_expiration_log_type.py b/data/migrations/versions/d8989249f8f6_add_change_tag_expiration_log_type.py index b0a8c657b..caaec2399 100644 --- a/data/migrations/versions/d8989249f8f6_add_change_tag_expiration_log_type.py +++ b/data/migrations/versions/d8989249f8f6_add_change_tag_expiration_log_type.py @@ -10,17 +10,12 @@ Create Date: 2017-06-21 21:18:25.948689 revision = "d8989249f8f6" down_revision = "dc4af11a5f90" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper - -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): op.bulk_insert(tables.logentrykind, [{"name": "change_tag_expiration"},]) -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): op.execute( tables.logentrykind.delete().where( tables.logentrykind.c.name == op.inline_literal("change_tag_expiration") diff --git a/data/migrations/versions/dc4af11a5f90_add_notification_number_of_failures_.py b/data/migrations/versions/dc4af11a5f90_add_notification_number_of_failures_.py index 903f7346a..2c9ddc737 100644 --- a/data/migrations/versions/dc4af11a5f90_add_notification_number_of_failures_.py +++ b/data/migrations/versions/dc4af11a5f90_add_notification_number_of_failures_.py @@ -11,12 +11,9 @@ revision = "dc4af11a5f90" down_revision = "53e2ac668296" import sqlalchemy as sa -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): op.add_column( "repositorynotification", sa.Column("number_of_failures", sa.Integer(), nullable=False, server_default="0"), @@ -30,8 +27,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): op.drop_column("repositorynotification", "number_of_failures") op.execute( tables.logentrykind.delete().where( diff --git a/data/migrations/versions/e184af42242d_add_missing_index_on_uuid_fields.py b/data/migrations/versions/e184af42242d_add_missing_index_on_uuid_fields.py index 060f9e47e..c3d3bbca7 100644 --- a/data/migrations/versions/e184af42242d_add_missing_index_on_uuid_fields.py +++ b/data/migrations/versions/e184af42242d_add_missing_index_on_uuid_fields.py @@ -10,12 +10,8 @@ Create Date: 2019-02-14 16:35:47.768086 revision = "e184af42242d" down_revision = "6ec8726c0ace" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper - -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_index("permissionprototype_uuid", "permissionprototype", ["uuid"], unique=False) op.create_index("repositorybuildtrigger_uuid", "repositorybuildtrigger", ["uuid"], unique=False) @@ -23,8 +19,7 @@ def upgrade(tables, tester, progress_reporter): # ### end Alembic commands ### -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_index("user_uuid", table_name="user") op.drop_index("repositorybuildtrigger_uuid", table_name="repositorybuildtrigger") diff --git a/data/migrations/versions/e2894a3a3c19_add_full_text_search_indexing_for_repo_.py b/data/migrations/versions/e2894a3a3c19_add_full_text_search_indexing_for_repo_.py index e9e5ba8bd..b616fbd63 100644 --- a/data/migrations/versions/e2894a3a3c19_add_full_text_search_indexing_for_repo_.py +++ b/data/migrations/versions/e2894a3a3c19_add_full_text_search_indexing_for_repo_.py @@ -10,14 +10,11 @@ Create Date: 2017-01-11 13:55:54.890774 revision = "e2894a3a3c19" down_revision = "d42c175b439a" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.create_index( "repository_description__fulltext", @@ -40,8 +37,7 @@ def upgrade(tables, tester, progress_reporter): # ### end Alembic commands ### -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_index("repository_name__fulltext", table_name="repository") op.drop_index("repository_description__fulltext", table_name="repository") diff --git a/data/migrations/versions/eafdeadcebc7_remove_blob_index_from_manifestblob_.py b/data/migrations/versions/eafdeadcebc7_remove_blob_index_from_manifestblob_.py index ba584dd9c..889141445 100644 --- a/data/migrations/versions/eafdeadcebc7_remove_blob_index_from_manifestblob_.py +++ b/data/migrations/versions/eafdeadcebc7_remove_blob_index_from_manifestblob_.py @@ -10,22 +10,18 @@ Create Date: 2018-08-07 15:57:54.001225 revision = "eafdeadcebc7" down_revision = "9093adccc784" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_index("manifestblob_manifest_id_blob_index", table_name="manifestblob") op.drop_column("manifestblob", "blob_index") # ### end Alembic commands ### -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.add_column( "manifestblob", diff --git a/data/migrations/versions/ed01e313d3cb_add_trust_enabled_to_repository.py b/data/migrations/versions/ed01e313d3cb_add_trust_enabled_to_repository.py index a9335f7b4..cef3af156 100644 --- a/data/migrations/versions/ed01e313d3cb_add_trust_enabled_to_repository.py +++ b/data/migrations/versions/ed01e313d3cb_add_trust_enabled_to_repository.py @@ -10,13 +10,10 @@ Create Date: 2017-04-14 17:38:03.319695 revision = "ed01e313d3cb" down_revision = "c3d4b7ebcdf7" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): ### commands auto generated by Alembic - please adjust! ### op.add_column( "repository", @@ -32,8 +29,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): ### commands auto generated by Alembic - please adjust! ### op.drop_column("repository", "trust_enabled") ### end Alembic commands ### diff --git a/data/migrations/versions/f30984525c86_add_repositorysearchscore_table.py b/data/migrations/versions/f30984525c86_add_repositorysearchscore_table.py index 19968cd6e..9de7f0c87 100644 --- a/data/migrations/versions/f30984525c86_add_repositorysearchscore_table.py +++ b/data/migrations/versions/f30984525c86_add_repositorysearchscore_table.py @@ -10,14 +10,11 @@ Create Date: 2017-04-04 14:30:13.270728 revision = "f30984525c86" down_revision = "be8d1c402ce0" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): ### commands auto generated by Alembic - please adjust! ### op.create_table( "repositorysearchscore", @@ -53,8 +50,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): ### commands auto generated by Alembic - please adjust! ### op.drop_table("repositorysearchscore") ### end Alembic commands ### diff --git a/data/migrations/versions/f5167870dd66_update_queue_item_table_indices.py b/data/migrations/versions/f5167870dd66_update_queue_item_table_indices.py index a8af5d564..3050fde90 100644 --- a/data/migrations/versions/f5167870dd66_update_queue_item_table_indices.py +++ b/data/migrations/versions/f5167870dd66_update_queue_item_table_indices.py @@ -10,14 +10,11 @@ Create Date: 2016-12-08 17:26:20.333846 revision = "f5167870dd66" down_revision = "45fd8b9869d4" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): ### commands auto generated by Alembic - please adjust! ### op.create_index( "queueitem_processing_expires_available", @@ -50,8 +47,7 @@ def upgrade(tables, tester, progress_reporter): ### end Alembic commands ### -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): ### commands auto generated by Alembic - please adjust! ### op.create_index("queueitem_retries_remaining", "queueitem", ["retries_remaining"], unique=False) op.create_index( diff --git a/data/migrations/versions/faf752bd2e0a_add_user_metadata_fields.py b/data/migrations/versions/faf752bd2e0a_add_user_metadata_fields.py index 6418cd33b..d5178aba2 100644 --- a/data/migrations/versions/faf752bd2e0a_add_user_metadata_fields.py +++ b/data/migrations/versions/faf752bd2e0a_add_user_metadata_fields.py @@ -10,15 +10,12 @@ Create Date: 2016-11-14 17:29:03.984665 revision = "faf752bd2e0a" down_revision = "6c7014e84a5e" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from util.migrate import UTF8CharField -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): ### commands auto generated by Alembic - please adjust! ### op.add_column("user", sa.Column("company", UTF8CharField(length=255), nullable=True)) op.add_column("user", sa.Column("family_name", UTF8CharField(length=255), nullable=True)) @@ -34,8 +31,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): ### commands auto generated by Alembic - please adjust! ### op.drop_column("user", "given_name") op.drop_column("user", "family_name") diff --git a/data/migrations/versions/fc47c1ec019f_add_state_id_field_to_queueitem.py b/data/migrations/versions/fc47c1ec019f_add_state_id_field_to_queueitem.py index d34c72d5b..bd61281c8 100644 --- a/data/migrations/versions/fc47c1ec019f_add_state_id_field_to_queueitem.py +++ b/data/migrations/versions/fc47c1ec019f_add_state_id_field_to_queueitem.py @@ -10,14 +10,11 @@ Create Date: 2017-01-12 15:44:23.643016 revision = "fc47c1ec019f" down_revision = "f5167870dd66" -from alembic import op as original_op -from data.migrations.progress import ProgressWrapper import sqlalchemy as sa from sqlalchemy.dialects import mysql -def upgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def upgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.add_column( "queueitem", sa.Column("state_id", sa.String(length=255), nullable=False, server_default="") @@ -30,8 +27,7 @@ def upgrade(tables, tester, progress_reporter): # ### end population of test data ### # -def downgrade(tables, tester, progress_reporter): - op = ProgressWrapper(original_op, progress_reporter) +def downgrade(op, tables, tester): # ### commands auto generated by Alembic - please adjust! ### op.drop_index("queueitem_state_id", table_name="queueitem") op.drop_column("queueitem", "state_id") diff --git a/endpoints/api/__init__.py b/endpoints/api/__init__.py index e5eb9bb54..4c2242fc6 100644 --- a/endpoints/api/__init__.py +++ b/endpoints/api/__init__.py @@ -116,10 +116,6 @@ def hide_if(value): return f -def truthy_bool(param): - return param not in {False, "false", "False", "0", "FALSE", "", "null"} - - def format_date(date): """ Output an RFC822 date format. diff --git a/endpoints/api/appspecifictokens.py b/endpoints/api/appspecifictokens.py index 0705bcaa8..a89335e2c 100644 --- a/endpoints/api/appspecifictokens.py +++ b/endpoints/api/appspecifictokens.py @@ -27,10 +27,11 @@ from endpoints.api import ( show_if, query_param, parse_args, - truthy_bool, ) +from util.parsing import truthy_bool from util.timedeltastring import convert_to_timedelta + logger = logging.getLogger(__name__) diff --git a/endpoints/api/discovery.py b/endpoints/api/discovery.py index cd177e5e4..6c0a52fa0 100644 --- a/endpoints/api/discovery.py +++ b/endpoints/api/discovery.py @@ -18,11 +18,11 @@ from endpoints.api import ( resource, method_metadata, nickname, - truthy_bool, parse_args, query_param, ) from endpoints.decorators import anon_allowed +from util.parsing import truthy_bool logger = logging.getLogger(__name__) diff --git a/endpoints/api/repository.py b/endpoints/api/repository.py index 2088dfbf7..5cf762509 100644 --- a/endpoints/api/repository.py +++ b/endpoints/api/repository.py @@ -30,7 +30,6 @@ from endpoints.api import ( path_param, page_support, query_param, - truthy_bool, show_if, ) from endpoints.api.repository_models_pre_oci import pre_oci_model as model @@ -53,6 +52,7 @@ from auth.permissions import ( from auth.auth_context import get_authenticated_user from auth import scopes from util.names import REPOSITORY_NAME_REGEX +from util.parsing import truthy_bool logger = logging.getLogger(__name__) diff --git a/endpoints/api/robot.py b/endpoints/api/robot.py index 095f3be39..f756d36b3 100644 --- a/endpoints/api/robot.py +++ b/endpoints/api/robot.py @@ -12,7 +12,6 @@ from endpoints.api import ( require_scope, path_param, parse_args, - truthy_bool, query_param, validate_json_request, max_json_size, @@ -23,6 +22,7 @@ from auth.permissions import AdministerOrganizationPermission, OrganizationMembe from auth.auth_context import get_authenticated_user from auth import scopes from util.names import format_robot_username +from util.parsing import truthy_bool from flask import abort, request diff --git a/endpoints/api/search.py b/endpoints/api/search.py index 9aef8ebfc..18f924c2e 100644 --- a/endpoints/api/search.py +++ b/endpoints/api/search.py @@ -8,7 +8,6 @@ from endpoints.api import ( ApiResource, parse_args, query_param, - truthy_bool, nickname, resource, require_scope, @@ -35,6 +34,7 @@ from flask import abort from operator import itemgetter from stringscore import liquidmetal from util.names import parse_robot_username +from util.parsing import truthy_bool import anunidecode # Don't listen to pylint's lies. This import is required. import math diff --git a/endpoints/api/secscan.py b/endpoints/api/secscan.py index 77c3fc8cb..40ff7c532 100644 --- a/endpoints/api/secscan.py +++ b/endpoints/api/secscan.py @@ -20,11 +20,11 @@ from endpoints.api import ( show_if, parse_args, query_param, - truthy_bool, disallow_for_app_repositories, ) from endpoints.exception import NotFound, DownstreamIssue from endpoints.api.manifest import MANIFEST_DIGEST_ROUTE +from util.parsing import truthy_bool @unique diff --git a/endpoints/api/superuser.py b/endpoints/api/superuser.py index 0861b2e6d..38d9e3b49 100644 --- a/endpoints/api/superuser.py +++ b/endpoints/api/superuser.py @@ -35,7 +35,6 @@ from endpoints.api import ( page_support, log_action, format_date, - truthy_bool, InvalidRequest, NotFound, Unauthorized, @@ -49,6 +48,7 @@ from endpoints.api.superuser_models_pre_oci import ( InvalidRepositoryBuildException, ) from endpoints.api.logs import _validate_logs_arguments +from util.parsing import truthy_bool from util.request import get_request_ip from util.useremails import send_confirmation_email, send_recovery_email from util.validation import validate_service_key_name diff --git a/endpoints/api/tag.py b/endpoints/api/tag.py index c42969800..7b99751e4 100644 --- a/endpoints/api/tag.py +++ b/endpoints/api/tag.py @@ -18,7 +18,6 @@ from endpoints.api import ( path_param, parse_args, query_param, - truthy_bool, disallow_for_app_repositories, format_date, disallow_for_non_normal_repositories, @@ -26,6 +25,7 @@ from endpoints.api import ( from endpoints.api.image import image_dict from endpoints.exception import NotFound, InvalidRequest from util.names import TAG_ERROR, TAG_REGEX +from util.parsing import truthy_bool def _tag_dict(tag): diff --git a/endpoints/api/team.py b/endpoints/api/team.py index 27de3aba3..c2ca6e960 100644 --- a/endpoints/api/team.py +++ b/endpoints/api/team.py @@ -32,7 +32,6 @@ from endpoints.api import ( require_scope, path_param, query_param, - truthy_bool, parse_args, require_user_admin, show_if, @@ -43,6 +42,7 @@ from endpoints.api import ( from endpoints.exception import Unauthorized, NotFound, InvalidRequest from util.useremails import send_org_invite_email from util.names import parse_robot_username +from util.parsing import truthy_bool def permission_view(permission): diff --git a/util/parsing.py b/util/parsing.py new file mode 100644 index 000000000..fc4edf28d --- /dev/null +++ b/util/parsing.py @@ -0,0 +1,2 @@ +def truthy_bool(param): + return param not in {False, "false", "False", "0", "FALSE", "", "null"}