From f67accea1fb5dd00a6260d12c217fc6209697346 Mon Sep 17 00:00:00 2001 From: Olga Bulat Date: Mon, 29 May 2023 15:39:34 +0300 Subject: [PATCH] Update tables --- .../media_props_gen/column_parser.py | 2 +- .../generate_media_properties.py | 2 +- documentation/meta/media_properties.md | 122 +++++++++--------- 3 files changed, 63 insertions(+), 63 deletions(-) diff --git a/catalog/utilities/media_props_gen/column_parser.py b/catalog/utilities/media_props_gen/column_parser.py index f9b6673c2d2..69b74024ada 100644 --- a/catalog/utilities/media_props_gen/column_parser.py +++ b/catalog/utilities/media_props_gen/column_parser.py @@ -15,7 +15,7 @@ def format_python_column( ) -> str: col_type = python_column.pop("python_type") start, end = python_column_lines[col_type] - python_column_string = f"[{col_type}]({COLUMNS_URL}#L{start}-L{end})(" + python_column_string = f"[{col_type}]({COLUMNS_URL}#L{start}-L{end}) (" col_name = python_column.pop("name") if col_name != column_db_name: python_column_string += f"name='{col_name}', " diff --git a/catalog/utilities/media_props_gen/generate_media_properties.py b/catalog/utilities/media_props_gen/generate_media_properties.py index 7573b993862..06e071775eb 100644 --- a/catalog/utilities/media_props_gen/generate_media_properties.py +++ b/catalog/utilities/media_props_gen/generate_media_properties.py @@ -140,7 +140,7 @@ def generate_media_props_table(media_properties) -> str: else f"{field_sql.datatype} {field_sql.constraint}" ) table += ( - f"| {field_name} | {field_sql.nullable} | " + f"| `{field_name}`` | {field_sql.nullable} | " f"{field_db_type} | {field.get('python_column', '')} | " f"{media_docs.get(field_name) or ''}\n" ) diff --git a/documentation/meta/media_properties.md b/documentation/meta/media_properties.md index 9e230cfdafb..9406340dea1 100644 --- a/documentation/meta/media_properties.md +++ b/documentation/meta/media_properties.md @@ -10,67 +10,67 @@ materialized view. ## Image Properties -| DB Field | DB Nullable | DB Type | Python Column | Description | -| ----------------------- | ----------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | -| identifier | True | uuid | [UUIDColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L500-L517)(nullable=True, required=False, upsert_strategy=newest_non_null) | -| created_on | False | timestamp with time zone | [TimestampColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L520-L547)(nullable=False, required=True, upsert_strategy=no_change) | -| updated_on | False | timestamp with time zone | [TimestampColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L520-L547)(nullable=False, required=True, upsert_strategy=newest_non_null) | -| ingestion_type | True | character varying (80) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=80, truncate=False)) | -| provider | True | character varying (80) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=80, truncate=False)) | -| source | True | character varying (80) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=80, truncate=False)) | -| foreign_identifier | True | character varying (3000) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=False, required=True, upsert_strategy=newest_non_null, StringColumnProps(size=3000, truncate=False)) | -| foreign_landing_url | True | character varying (1000) | [URLColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L550-L596)(nullable=True, required=True, upsert_strategy=newest_non_null, URLColumnProps(size=1000)) | -| url | False | character varying (3000) | [URLColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L550-L596)(nullable=False, required=True, upsert_strategy=newest_non_null, URLColumnProps(size=3000)) | -| thumbnail | True | character varying (3000) | [URLColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L550-L596)(name='thumbnail_url', nullable=True, required=False, upsert_strategy=newest_non_null, URLColumnProps(size=3000)) | -| width | True | integer | [IntegerColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L216-L256)(nullable=True, required=False, upsert_strategy=newest_non_null) | -| height | True | integer | [IntegerColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L216-L256)(nullable=True, required=False, upsert_strategy=newest_non_null) | -| filesize | True | integer | [IntegerColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L216-L256)(nullable=True, required=False, upsert_strategy=newest_non_null) | -| license | False | character varying (50) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(name='license\_', nullable=False, required=True, upsert_strategy=newest_non_null, StringColumnProps(size=50, truncate=False)) | -| license_version | True | character varying (25) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=False, required=True, upsert_strategy=newest_non_null, StringColumnProps(size=25, truncate=False)) | -| creator | True | character varying (2000) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=2000, truncate=True)) | -| creator_url | True | character varying (2000) | [URLColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L550-L596)(nullable=True, required=False, upsert_strategy=newest_non_null, URLColumnProps(size=2000)) | -| title | True | character varying (5000) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=5000, truncate=True)) | -| meta_data | True | jsonb | [JSONColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L388-L454)(nullable=True, required=False, upsert_strategy=newest_non_null) | -| tags | True | jsonb | [JSONColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L388-L454)(nullable=True, required=False, upsert_strategy=merge_jsonb_arrays) | -| watermarked | True | boolean | [BooleanColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L340-L385)(nullable=True, required=False, upsert_strategy=newest_non_null) | -| last_synced_with_source | True | timestamp with time zone | [TimestampColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L520-L547)(nullable=True, required=False, upsert_strategy=newest_non_null) | -| removed_from_source | False | boolean | [BooleanColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L340-L385)(nullable=False, required=True, upsert_strategy=false) | -| filetype | True | character varying (5) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(truncate=False, size=5)) | -| category | True | character varying (80) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=80, truncate=False)) | -| standardized_popularity | True | double precision | [CalculatedColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L259-L337)(nullable=True, required=False, upsert_strategy=newest_non_null) | +| DB Field | DB Nullable | DB Type | Python Column | Description | +| -------------------------- | ----------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------- | +| `identifier`` | True | uuid | [UUIDColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L500-L517) (nullable=True, required=False, upsert_strategy=newest_non_null) | +| `created_on`` | False | timestamp with time zone | [TimestampColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L520-L547) (nullable=False, required=True, upsert_strategy=no_change) | +| `updated_on`` | False | timestamp with time zone | [TimestampColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L520-L547) (nullable=False, required=True, upsert_strategy=newest_non_null) | +| `ingestion_type`` | True | character varying (80) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=80, truncate=False)) | +| `provider`` | True | character varying (80) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=80, truncate=False)) | +| `source`` | True | character varying (80) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=80, truncate=False)) | +| `foreign_identifier`` | True | character varying (3000) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=False, required=True, upsert_strategy=newest_non_null, StringColumnProps(size=3000, truncate=False)) | +| `foreign_landing_url`` | True | character varying (1000) | [URLColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L550-L596) (nullable=True, required=True, upsert_strategy=newest_non_null, URLColumnProps(size=1000)) | +| `url`` | False | character varying (3000) | [URLColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L550-L596) (nullable=False, required=True, upsert_strategy=newest_non_null, URLColumnProps(size=3000)) | +| `thumbnail`` | True | character varying (3000) | [URLColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L550-L596) (name='thumbnail_url', nullable=True, required=False, upsert_strategy=newest_non_null, URLColumnProps(size=3000)) | +| `width`` | True | integer | [IntegerColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L216-L256) (nullable=True, required=False, upsert_strategy=newest_non_null) | +| `height`` | True | integer | [IntegerColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L216-L256) (nullable=True, required=False, upsert_strategy=newest_non_null) | +| `filesize`` | True | integer | [IntegerColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L216-L256) (nullable=True, required=False, upsert_strategy=newest_non_null) | +| `license`` | False | character varying (50) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (name='license\_', nullable=False, required=True, upsert_strategy=newest_non_null, StringColumnProps(size=50, truncate=False)) | +| `license_version`` | True | character varying (25) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=False, required=True, upsert_strategy=newest_non_null, StringColumnProps(size=25, truncate=False)) | +| `creator`` | True | character varying (2000) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=2000, truncate=True)) | +| `creator_url`` | True | character varying (2000) | [URLColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L550-L596) (nullable=True, required=False, upsert_strategy=newest_non_null, URLColumnProps(size=2000)) | +| `title`` | True | character varying (5000) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=5000, truncate=True)) | +| `meta_data`` | True | jsonb | [JSONColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L388-L454) (nullable=True, required=False, upsert_strategy=newest_non_null) | +| `tags`` | True | jsonb | [JSONColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L388-L454) (nullable=True, required=False, upsert_strategy=merge_jsonb_arrays) | +| `watermarked`` | True | boolean | [BooleanColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L340-L385) (nullable=True, required=False, upsert_strategy=newest_non_null) | +| `last_synced_with_source`` | True | timestamp with time zone | [TimestampColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L520-L547) (nullable=True, required=False, upsert_strategy=newest_non_null) | +| `removed_from_source`` | False | boolean | [BooleanColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L340-L385) (nullable=False, required=True, upsert_strategy=false) | +| `filetype`` | True | character varying (5) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(truncate=False, size=5)) | +| `category`` | True | character varying (80) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=80, truncate=False)) | +| `standardized_popularity`` | True | double precision | [CalculatedColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L259-L337) (nullable=True, required=False, upsert_strategy=newest_non_null) | ## Audio Properties -| DB Field | DB Nullable | DB Type | Python Column | Description | -| ----------------------- | ----------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | -| identifier | True | uuid | [UUIDColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L500-L517)(nullable=True, required=False, upsert_strategy=newest_non_null) | -| created_on | False | timestamp with time zone | [TimestampColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L520-L547)(nullable=False, required=True, upsert_strategy=no_change) | -| updated_on | False | timestamp with time zone | [TimestampColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L520-L547)(nullable=False, required=True, upsert_strategy=newest_non_null) | -| ingestion_type | True | character varying (80) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=80, truncate=False)) | -| provider | True | character varying (80) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=80, truncate=False)) | -| source | True | character varying (80) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=80, truncate=False)) | -| foreign_identifier | True | character varying (3000) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=False, required=True, upsert_strategy=newest_non_null, StringColumnProps(size=3000, truncate=False)) | -| foreign_landing_url | True | character varying (1000) | [URLColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L550-L596)(nullable=True, required=True, upsert_strategy=newest_non_null, URLColumnProps(size=1000)) | -| url | False | character varying (3000) | [URLColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L550-L596)(nullable=False, required=True, upsert_strategy=newest_non_null, URLColumnProps(size=3000)) | -| thumbnail | True | character varying (3000) | [URLColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L550-L596)(name='thumbnail_url', nullable=True, required=False, upsert_strategy=newest_non_null, URLColumnProps(size=3000)) | -| filetype | True | character varying (5) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(truncate=False, size=5)) | -| duration | True | integer | [IntegerColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L216-L256)(nullable=True, required=False, upsert_strategy=newest_non_null) | -| bit_rate | True | integer | [IntegerColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L216-L256)(nullable=True, required=False, upsert_strategy=newest_non_null) | -| sample_rate | True | integer | [IntegerColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L216-L256)(nullable=True, required=False, upsert_strategy=newest_non_null) | -| category | True | character varying (80) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=80, truncate=False)) | -| genres | True | array of character varying (80) | [ArrayColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L599-L651)(nullable=True, required=False, upsert_strategy=newest_non_null, ArrayColumnProps(base_column=StringColumn(name=genre, required=False, size=80, truncate=False))) | -| audio_set | True | jsonb | [JSONColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L388-L454)(nullable=True, required=False, upsert_strategy=newest_non_null) | -| set_position | True | integer | [IntegerColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L216-L256)(nullable=True, required=False, upsert_strategy=newest_non_null) | -| alt_files | True | jsonb | [JSONColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L388-L454)(nullable=True, required=False, upsert_strategy=merge_jsonb_arrays) | -| filesize | True | integer | [IntegerColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L216-L256)(nullable=True, required=False, upsert_strategy=newest_non_null) | -| license | False | character varying (50) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(name='license\_', nullable=False, required=True, upsert_strategy=newest_non_null, StringColumnProps(size=50, truncate=False)) | -| license_version | True | character varying (25) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=False, required=True, upsert_strategy=newest_non_null, StringColumnProps(size=25, truncate=False)) | -| creator | True | character varying (2000) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=2000, truncate=True)) | -| creator_url | True | character varying (2000) | [URLColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L550-L596)(nullable=True, required=False, upsert_strategy=newest_non_null, URLColumnProps(size=2000)) | -| title | True | character varying (5000) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497)(nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=5000, truncate=True)) | -| meta_data | True | jsonb | [JSONColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L388-L454)(nullable=True, required=False, upsert_strategy=newest_non_null) | -| tags | True | jsonb | [JSONColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L388-L454)(nullable=True, required=False, upsert_strategy=merge_jsonb_arrays) | -| watermarked | True | boolean | [BooleanColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L340-L385)(nullable=True, required=False, upsert_strategy=newest_non_null) | -| last_synced_with_source | True | timestamp with time zone | [TimestampColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L520-L547)(nullable=True, required=False, upsert_strategy=newest_non_null) | -| removed_from_source | False | boolean | [BooleanColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L340-L385)(nullable=False, required=True, upsert_strategy=false) | -| standardized_popularity | True | double precision | [CalculatedColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L259-L337)(nullable=True, required=False, upsert_strategy=newest_non_null) | +| DB Field | DB Nullable | DB Type | Python Column | Description | +| -------------------------- | ----------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | +| `identifier`` | True | uuid | [UUIDColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L500-L517) (nullable=True, required=False, upsert_strategy=newest_non_null) | +| `created_on`` | False | timestamp with time zone | [TimestampColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L520-L547) (nullable=False, required=True, upsert_strategy=no_change) | +| `updated_on`` | False | timestamp with time zone | [TimestampColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L520-L547) (nullable=False, required=True, upsert_strategy=newest_non_null) | +| `ingestion_type`` | True | character varying (80) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=80, truncate=False)) | +| `provider`` | True | character varying (80) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=80, truncate=False)) | +| `source`` | True | character varying (80) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=80, truncate=False)) | +| `foreign_identifier`` | True | character varying (3000) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=False, required=True, upsert_strategy=newest_non_null, StringColumnProps(size=3000, truncate=False)) | +| `foreign_landing_url`` | True | character varying (1000) | [URLColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L550-L596) (nullable=True, required=True, upsert_strategy=newest_non_null, URLColumnProps(size=1000)) | +| `url`` | False | character varying (3000) | [URLColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L550-L596) (nullable=False, required=True, upsert_strategy=newest_non_null, URLColumnProps(size=3000)) | +| `thumbnail`` | True | character varying (3000) | [URLColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L550-L596) (name='thumbnail_url', nullable=True, required=False, upsert_strategy=newest_non_null, URLColumnProps(size=3000)) | +| `filetype`` | True | character varying (5) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(truncate=False, size=5)) | +| `duration`` | True | integer | [IntegerColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L216-L256) (nullable=True, required=False, upsert_strategy=newest_non_null) | +| `bit_rate`` | True | integer | [IntegerColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L216-L256) (nullable=True, required=False, upsert_strategy=newest_non_null) | +| `sample_rate`` | True | integer | [IntegerColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L216-L256) (nullable=True, required=False, upsert_strategy=newest_non_null) | +| `category`` | True | character varying (80) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=80, truncate=False)) | +| `genres`` | True | array of character varying (80) | [ArrayColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L599-L651) (nullable=True, required=False, upsert_strategy=newest_non_null, ArrayColumnProps(base_column=StringColumn(name=genre, required=False, size=80, truncate=False))) | +| `audio_set`` | True | jsonb | [JSONColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L388-L454) (nullable=True, required=False, upsert_strategy=newest_non_null) | +| `set_position`` | True | integer | [IntegerColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L216-L256) (nullable=True, required=False, upsert_strategy=newest_non_null) | +| `alt_files`` | True | jsonb | [JSONColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L388-L454) (nullable=True, required=False, upsert_strategy=merge_jsonb_arrays) | +| `filesize`` | True | integer | [IntegerColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L216-L256) (nullable=True, required=False, upsert_strategy=newest_non_null) | +| `license`` | False | character varying (50) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (name='license\_', nullable=False, required=True, upsert_strategy=newest_non_null, StringColumnProps(size=50, truncate=False)) | +| `license_version`` | True | character varying (25) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=False, required=True, upsert_strategy=newest_non_null, StringColumnProps(size=25, truncate=False)) | +| `creator`` | True | character varying (2000) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=2000, truncate=True)) | +| `creator_url`` | True | character varying (2000) | [URLColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L550-L596) (nullable=True, required=False, upsert_strategy=newest_non_null, URLColumnProps(size=2000)) | +| `title`` | True | character varying (5000) | [StringColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L457-L497) (nullable=True, required=False, upsert_strategy=newest_non_null, StringColumnProps(size=5000, truncate=True)) | +| `meta_data`` | True | jsonb | [JSONColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L388-L454) (nullable=True, required=False, upsert_strategy=newest_non_null) | +| `tags`` | True | jsonb | [JSONColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L388-L454) (nullable=True, required=False, upsert_strategy=merge_jsonb_arrays) | +| `watermarked`` | True | boolean | [BooleanColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L340-L385) (nullable=True, required=False, upsert_strategy=newest_non_null) | +| `last_synced_with_source`` | True | timestamp with time zone | [TimestampColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L520-L547) (nullable=True, required=False, upsert_strategy=newest_non_null) | +| `removed_from_source`` | False | boolean | [BooleanColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L340-L385) (nullable=False, required=True, upsert_strategy=false) | +| `standardized_popularity`` | True | double precision | [CalculatedColumn](https://github.com/WordPress/openverse/blob/main/catalog/dags/common/storage/columns.py#L259-L337) (nullable=True, required=False, upsert_strategy=newest_non_null) |