diff --git a/sql/upgrades/167.sql b/sql/upgrades/167.sql new file mode 100644 --- /dev/null +++ b/sql/upgrades/167.sql @@ -0,0 +1,11 @@ +-- SWH DB schema upgrade +-- from_version: 166 +-- to_version: 167 +-- description: Make origin_visit_status.type not null + +insert into dbversion(version, release, description) + values(167, now(), 'Work In Progress'); + +-- Data migrated, all values populated now +alter table origin_visit_status + alter column type set not null; diff --git a/swh/storage/backfill.py b/swh/storage/backfill.py --- a/swh/storage/backfill.py +++ b/swh/storage/backfill.py @@ -146,7 +146,7 @@ ("origin_visit_status.visit", "visit"), ("origin.url", "origin"), ("origin_visit_status.date", "date"), - ("origin_visit.type", "type"), + "type", "snapshot", "status", "metadata", @@ -161,13 +161,7 @@ "person c on revision.committer=c.id", ], "origin_visit": ["origin on origin_visit.origin=origin.id"], - "origin_visit_status": [ - "origin on origin_visit_status.origin=origin.id", - # Joining on origin_visit to be able to backfill before the - # origin_visit_status.type is populated by a migration script - # TODO remove this when origin_visit_status.type is fully populated - "origin_visit using (origin, visit)", - ], + "origin_visit_status": ["origin on origin_visit_status.origin=origin.id",], "raw_extrinsic_metadata": [ "metadata_authority on " "raw_extrinsic_metadata.authority_id=metadata_authority.id", diff --git a/swh/storage/postgresql/db.py b/swh/storage/postgresql/db.py --- a/swh/storage/postgresql/db.py +++ b/swh/storage/postgresql/db.py @@ -28,7 +28,7 @@ """ - current_version = 166 + current_version = 167 def mktemp_dir_entry(self, entry_type, cur=None): self._cursor(cur).execute( @@ -515,7 +515,7 @@ "o.url AS origin", "ovs.visit", "ovs.date", - "ov.type AS type", # To remove when origin_visit_status.type is populated + "ovs.type AS type", "ovs.status", "ovs.snapshot", "ovs.metadata", @@ -548,7 +548,6 @@ "SELECT %s" % ", ".join(self.origin_visit_status_select_cols), "FROM origin_visit_status ovs ", "INNER JOIN origin o ON o.id = ovs.origin", - "INNER JOIN origin_visit ov using (origin, visit)", ] query_parts.append("WHERE o.url = %s") query_params: List[Any] = [origin_url] @@ -587,7 +586,6 @@ f"SELECT {', '.join(self.origin_visit_status_select_cols)} " "FROM origin_visit_status ovs ", "INNER JOIN origin o ON o.id = ovs.origin ", - "INNER JOIN origin_visit ov using (origin, visit)", ] query_parts.append("WHERE o.url = %s AND ovs.visit = %s ") query_params: List[Any] = [origin, visit] diff --git a/swh/storage/sql/30-schema.sql b/swh/storage/sql/30-schema.sql --- a/swh/storage/sql/30-schema.sql +++ b/swh/storage/sql/30-schema.sql @@ -17,7 +17,7 @@ -- latest schema version insert into dbversion(version, release, description) - values(166, now(), 'Work In Progress'); + values(167, now(), 'Work In Progress'); -- a SHA1 checksum create domain sha1 as bytea check (length(value) = 20); @@ -301,7 +301,7 @@ origin bigint not null, visit bigint not null, date timestamptz not null, - type text, + type text not null, status origin_visit_state not null, metadata jsonb, snapshot sha1_git