feat(translate): add insert_method dispatch and model/schema updates for direct DB
This commit is contained in:
@@ -76,5 +76,57 @@ class SupersetDatabasesMixin:
|
||||
_, databases = await self.get_databases(query=query)
|
||||
return databases[0] if databases else None
|
||||
# #endregion SupersetClientGetDatabaseByUuid
|
||||
# #region SupersetClientCreateDatabase [TYPE Function] [C:3]
|
||||
# @ingroup Core
|
||||
# @PURPOSE: Register a new database in Superset via REST API.
|
||||
# @POST Returns the created database dict with id.
|
||||
# @SIDE_EFFECT Makes POST request to /api/v1/database/.
|
||||
# @RELATION CALLS -> [AsyncAPIClient.request]
|
||||
async def create_database(
|
||||
self,
|
||||
database_name: str,
|
||||
sqlalchemy_uri: str,
|
||||
expose_in_sqllab: bool = True,
|
||||
allow_dml: bool = False,
|
||||
) -> dict:
|
||||
with belief_scope("SupersetClient.create_database"):
|
||||
app_logger.reason(
|
||||
"Creating database in Superset",
|
||||
extra={"database_name": database_name, "expose_in_sqllab": expose_in_sqllab},
|
||||
)
|
||||
response = await self.client.request(
|
||||
method="POST",
|
||||
endpoint="/database/",
|
||||
data={
|
||||
"database_name": database_name,
|
||||
"sqlalchemy_uri": sqlalchemy_uri,
|
||||
"expose_in_sqllab": expose_in_sqllab,
|
||||
"allow_dml": allow_dml,
|
||||
},
|
||||
)
|
||||
response = cast(dict, response)
|
||||
app_logger.reflect(
|
||||
"Database created",
|
||||
extra={"database_id": response.get("id"), "database_name": database_name},
|
||||
)
|
||||
return response
|
||||
# #endregion SupersetClientCreateDatabase
|
||||
# #region SupersetClientDeleteDatabase [TYPE Function] [C:3]
|
||||
# @ingroup Core
|
||||
# @PURPOSE: Delete a database from Superset by ID.
|
||||
# @POST Database removed from Superset.
|
||||
# @SIDE_EFFECT Makes DELETE request to /api/v1/database/<id>.
|
||||
# @RELATION CALLS -> [AsyncAPIClient.request]
|
||||
async def delete_database(self, database_id: int) -> dict:
|
||||
with belief_scope("SupersetClient.delete_database"):
|
||||
app_logger.reason("Deleting database", extra={"database_id": database_id})
|
||||
response = await self.client.request(
|
||||
method="DELETE",
|
||||
endpoint=f"/database/{database_id}",
|
||||
)
|
||||
response = cast(dict, response)
|
||||
app_logger.reflect("Database deleted", extra={"database_id": database_id})
|
||||
return response
|
||||
# #endregion SupersetClientDeleteDatabase
|
||||
# #endregion SupersetDatabasesMixin
|
||||
# #endregion SupersetDatabasesMixin
|
||||
|
||||
Reference in New Issue
Block a user