mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-07-25 02:04:39 +00:00
fix: mark table deleted dependencies (#10476)
This commit is contained in:
parent
4c6d184ef5
commit
ddbc0311e8
@ -11,6 +11,8 @@
|
|||||||
"""
|
"""
|
||||||
Table related pydantic definitions
|
Table related pydantic definitions
|
||||||
"""
|
"""
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from metadata.generated.schema.entity.data.table import Table
|
from metadata.generated.schema.entity.data.table import Table
|
||||||
@ -20,3 +22,4 @@ class DeleteTable(BaseModel):
|
|||||||
"""Entity Reference of a table to be deleted"""
|
"""Entity Reference of a table to be deleted"""
|
||||||
|
|
||||||
table: Table
|
table: Table
|
||||||
|
mark_deleted_tables: Optional[bool] = False
|
||||||
|
@ -339,7 +339,12 @@ class MetadataRestSink(Sink[Entity]):
|
|||||||
|
|
||||||
def delete_table(self, record: DeleteTable):
|
def delete_table(self, record: DeleteTable):
|
||||||
try:
|
try:
|
||||||
self.metadata.delete(entity=Table, entity_id=record.table.id)
|
|
||||||
|
self.metadata.delete(
|
||||||
|
entity=Table,
|
||||||
|
entity_id=record.table.id,
|
||||||
|
recursive=record.mark_deleted_tables,
|
||||||
|
)
|
||||||
logger.debug(
|
logger.debug(
|
||||||
f"{record.table.name} doesn't exist in source state, marking it as deleted"
|
f"{record.table.name} doesn't exist in source state, marking it as deleted"
|
||||||
)
|
)
|
||||||
|
@ -429,7 +429,10 @@ class DatabaseServiceSource(
|
|||||||
)
|
)
|
||||||
for table in database_state:
|
for table in database_state:
|
||||||
if str(table.fullyQualifiedName.__root__) not in self.database_source_state:
|
if str(table.fullyQualifiedName.__root__) not in self.database_source_state:
|
||||||
yield DeleteTable(table=table)
|
yield DeleteTable(
|
||||||
|
table=table,
|
||||||
|
mark_deleted_tables=self.source_config.markDeletedTables,
|
||||||
|
)
|
||||||
|
|
||||||
def fetch_all_schema_and_delete_tables(self):
|
def fetch_all_schema_and_delete_tables(self):
|
||||||
"""
|
"""
|
||||||
|
@ -381,9 +381,13 @@ public class TableResource extends EntityResource<Table, TableRepository> {
|
|||||||
@QueryParam("hardDelete")
|
@QueryParam("hardDelete")
|
||||||
@DefaultValue("false")
|
@DefaultValue("false")
|
||||||
boolean hardDelete,
|
boolean hardDelete,
|
||||||
|
@Parameter(description = "Recursively delete this entity and it's children. (Default `false`)")
|
||||||
|
@QueryParam("recursive")
|
||||||
|
@DefaultValue("false")
|
||||||
|
boolean recursive,
|
||||||
@Parameter(description = "Id of the table", schema = @Schema(type = "UUID")) @PathParam("id") UUID id)
|
@Parameter(description = "Id of the table", schema = @Schema(type = "UUID")) @PathParam("id") UUID id)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
return delete(uriInfo, securityContext, id, false, hardDelete);
|
return delete(uriInfo, securityContext, id, recursive, hardDelete);
|
||||||
}
|
}
|
||||||
|
|
||||||
@DELETE
|
@DELETE
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
"default": "DatabaseMetadata"
|
"default": "DatabaseMetadata"
|
||||||
},
|
},
|
||||||
"markDeletedTables": {
|
"markDeletedTables": {
|
||||||
"description": "Optional configuration to soft delete tables in OpenMetadata if the source tables are deleted.",
|
"description": "Optional configuration to soft delete tables in OpenMetadata if the source tables are deleted. Also, if the table is deleted, all the associated entities like testSuite, lineage, etc., with that table will be deleted",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": true
|
"default": true
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user