Merge branch 'master' into global-bindings

This commit is contained in:
deanhannigan 2024-01-22 10:26:12 +00:00 committed by GitHub
commit 2641224ea0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 33 additions and 2 deletions

View File

@ -9,8 +9,11 @@ import {
CreateDatasourceResponse,
Datasource,
DatasourcePlus,
Document,
FetchDatasourceInfoRequest,
FetchDatasourceInfoResponse,
FieldType,
RelationshipFieldMetadata,
SourceName,
UpdateDatasourceResponse,
UserCtx,
@ -218,9 +221,26 @@ async function destroyInternalTablesBySourceId(datasourceId: string) {
[]
)
function updateRevisions(deletedLinks: RelationshipFieldMetadata[]) {
for (const link of deletedLinks) {
datasourceTableDocs.forEach((doc: Document) => {
if (doc._id === link.tableId) {
doc._rev = link.tableRev
}
})
}
}
// Destroy the tables.
for (const table of datasourceTableDocs) {
await sdk.tables.internal.destroy(table)
const deleted = await sdk.tables.internal.destroy(table)
// Update the revisions of any tables that remain to be deleted
const deletedLinks: RelationshipFieldMetadata[] = Object.values(
deleted.table.schema
)
.filter(field => field.type === FieldType.LINK)
.map(field => field as RelationshipFieldMetadata)
updateRevisions(deletedLinks)
}
}

View File

@ -13,6 +13,7 @@ export const employeeImport = [
type: "row",
"Employee Level": ["Senior"],
"Start Date": "2015-02-12T12:00:00.000",
"Badge Photo": [],
},
{
"First Name": "Mandy",
@ -28,6 +29,7 @@ export const employeeImport = [
type: "row",
"Employee Level": ["Senior"],
"Start Date": "2017-09-10T12:00:00.000",
"Badge Photo": [],
},
{
"First Name": "Holly",
@ -43,6 +45,7 @@ export const employeeImport = [
type: "row",
"Employee Level": ["Senior"],
"Start Date": "2022-02-12T12:00:00.000",
"Badge Photo": [],
},
{
"First Name": "Francis",
@ -58,6 +61,7 @@ export const employeeImport = [
type: "row",
"Employee Level": ["Apprentice"],
"Start Date": "2021-03-10T12:00:00.000",
"Badge Photo": [],
},
{
"First Name": "Richard",
@ -73,6 +77,7 @@ export const employeeImport = [
type: "row",
"Employee Level": ["Apprentice"],
"Start Date": "2020-07-09T12:00:00.000",
"Badge Photo": [],
},
{
"First Name": "Donald",
@ -88,6 +93,7 @@ export const employeeImport = [
type: "row",
"Employee Level": ["Junior"],
"Start Date": "2018-04-13T12:00:00.000",
"Badge Photo": [],
},
{
"First Name": "Maria",
@ -103,6 +109,7 @@ export const employeeImport = [
type: "row",
"Employee Level": ["Manager"],
"Start Date": "2016-05-22T12:00:00.000",
"Badge Photo": [],
},
{
"First Name": "Suzy",
@ -118,6 +125,7 @@ export const employeeImport = [
type: "row",
"Employee Level": ["Senior", "Manager"],
"Start Date": "2019-05-01T12:00:00.000",
"Badge Photo": [],
},
{
"First Name": "Patrick",
@ -133,6 +141,7 @@ export const employeeImport = [
type: "row",
"Employee Level": ["Apprentice"],
"Start Date": "2014-08-30T12:00:00.000",
"Badge Photo": [],
},
{
"First Name": "Brayden",
@ -148,5 +157,6 @@ export const employeeImport = [
type: "row",
"Employee Level": ["Contractor"],
"Start Date": "2022-11-09T12:00:00.000",
"Badge Photo": [],
},
]

View File

@ -440,7 +440,7 @@ class LinkController {
if (field.type === FieldTypes.LINK && field.fieldName) {
const linkedTable = await this._db.get<Table>(field.tableId)
delete linkedTable.schema[field.fieldName]
await this._db.put(linkedTable)
field.tableRev = (await this._db.put(linkedTable)).rev
}
} catch (err: any) {
logging.logWarn(err?.message, err)

View File

@ -21,6 +21,7 @@ interface BaseRelationshipFieldMetadata
main?: boolean
fieldName: string
tableId: string
tableRev?: string
subtype?: AutoFieldSubTypes.CREATED_BY | AutoFieldSubTypes.UPDATED_BY
}