@budibase/server 1.0.80-alpha.2 → 1.0.80-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/builder/assets/{index.f3e82852.js → index.26c3b006.js} +2 -2
- package/builder/index.html +1 -1
- package/coverage/clover.xml +103 -99
- package/coverage/coverage-final.json +1 -1
- package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
- package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/controllers/application.js.html +1 -1
- package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
- package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
- package/coverage/lcov-report/api/controllers/component.js.html +1 -1
- package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +1 -1
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
- package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
- package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/role.js.html +1 -1
- package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
- package/coverage/lcov-report/api/controllers/script.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/external.js.html +51 -9
- package/coverage/lcov-report/api/controllers/table/index.html +14 -14
- package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
- package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/routes/application.js.html +1 -1
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +1 -1
- package/coverage/lcov-report/api/routes/backup.js.html +1 -1
- package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
- package/coverage/lcov-report/api/routes/component.js.html +1 -1
- package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
- package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
- package/coverage/lcov-report/api/routes/dev.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +1 -1
- package/coverage/lcov-report/api/routes/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/integration.js.html +1 -1
- package/coverage/lcov-report/api/routes/layout.js.html +1 -1
- package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
- package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
- package/coverage/lcov-report/api/routes/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +1 -1
- package/coverage/lcov-report/api/routes/role.js.html +1 -1
- package/coverage/lcov-report/api/routes/routing.js.html +1 -1
- package/coverage/lcov-report/api/routes/row.js.html +1 -1
- package/coverage/lcov-report/api/routes/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/static.js.html +1 -1
- package/coverage/lcov-report/api/routes/table.js.html +1 -1
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/utils/index.html +1 -1
- package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
- package/coverage/lcov-report/api/routes/view.js.html +1 -1
- package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/actions.js.html +1 -1
- package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
- package/coverage/lcov-report/automations/bullboard.js.html +1 -1
- package/coverage/lcov-report/automations/index.html +1 -1
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
- package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +1 -1
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
- package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
- package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
- package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
- package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/triggers.js.html +1 -1
- package/coverage/lcov-report/automations/utils.js.html +1 -1
- package/coverage/lcov-report/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +1 -1
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +1 -1
- package/coverage/lcov-report/db/client.js.html +1 -1
- package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
- package/coverage/lcov-report/db/index.html +1 -1
- package/coverage/lcov-report/db/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
- package/coverage/lcov-report/db/newid.js.html +1 -1
- package/coverage/lcov-report/db/utils.js.html +1 -1
- package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +1 -1
- package/coverage/lcov-report/events/utils.js.html +1 -1
- package/coverage/lcov-report/index.html +14 -14
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
- package/coverage/lcov-report/middleware/authorized.js.html +1 -1
- package/coverage/lcov-report/middleware/builder.js.html +1 -1
- package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
- package/coverage/lcov-report/middleware/index.html +1 -1
- package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
- package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
- package/coverage/lcov-report/middleware/utils.js.html +1 -1
- package/coverage/lcov-report/threads/automation.js.html +1 -1
- package/coverage/lcov-report/threads/index.html +1 -1
- package/coverage/lcov-report/threads/index.js.html +1 -1
- package/coverage/lcov-report/threads/query.js.html +1 -1
- package/coverage/lcov-report/threads/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
- package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
- package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
- package/coverage/lcov-report/utilities/global.js.html +1 -1
- package/coverage/lcov-report/utilities/index.html +1 -1
- package/coverage/lcov-report/utilities/index.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
- package/coverage/lcov-report/utilities/security.js.html +1 -1
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
- package/coverage/lcov.info +169 -162
- package/dist/api/controllers/table/external.js +8 -2
- package/dist/integrations/base/sqlTable.js +13 -5
- package/dist/package.json +4 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/specs/generate.js +13 -2
- package/specs/openapi.json +13 -3
- package/specs/openapi.yaml +10 -2
- package/src/api/controllers/table/external.js +16 -2
- package/src/definitions/datasource.ts +6 -0
- package/src/integrations/base/sqlTable.ts +24 -6
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/server",
|
|
3
3
|
"email": "hi@budibase.com",
|
|
4
|
-
"version": "1.0.80-alpha.
|
|
4
|
+
"version": "1.0.80-alpha.5",
|
|
5
5
|
"description": "Budibase Web Server",
|
|
6
6
|
"main": "src/index.ts",
|
|
7
7
|
"repository": {
|
|
@@ -71,9 +71,9 @@
|
|
|
71
71
|
"license": "GPL-3.0",
|
|
72
72
|
"dependencies": {
|
|
73
73
|
"@apidevtools/swagger-parser": "^10.0.3",
|
|
74
|
-
"@budibase/backend-core": "^1.0.80-alpha.
|
|
75
|
-
"@budibase/client": "^1.0.80-alpha.
|
|
76
|
-
"@budibase/string-templates": "^1.0.80-alpha.
|
|
74
|
+
"@budibase/backend-core": "^1.0.80-alpha.5",
|
|
75
|
+
"@budibase/client": "^1.0.80-alpha.5",
|
|
76
|
+
"@budibase/string-templates": "^1.0.80-alpha.5",
|
|
77
77
|
"@bull-board/api": "^3.7.0",
|
|
78
78
|
"@bull-board/koa": "^3.7.0",
|
|
79
79
|
"@elastic/elasticsearch": "7.10.0",
|
|
@@ -175,5 +175,5 @@
|
|
|
175
175
|
"optionalDependencies": {
|
|
176
176
|
"oracledb": "^5.3.0"
|
|
177
177
|
},
|
|
178
|
-
"gitHead": "
|
|
178
|
+
"gitHead": "dafd0ec305b3ab1458537488830ef9b254841ff6"
|
|
179
179
|
}
|
package/specs/generate.js
CHANGED
|
@@ -17,12 +17,23 @@ const options = {
|
|
|
17
17
|
},
|
|
18
18
|
servers: [
|
|
19
19
|
{
|
|
20
|
-
url: "
|
|
20
|
+
url: "https://budibase.app/api/public/v1",
|
|
21
21
|
description: "Budibase Cloud API",
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
|
-
url: "{protocol}://{hostname}
|
|
24
|
+
url: "{protocol}://{hostname}/api/public/v1",
|
|
25
25
|
description: "Budibase self hosted API",
|
|
26
|
+
variables: {
|
|
27
|
+
protocol: {
|
|
28
|
+
default: "http",
|
|
29
|
+
description:
|
|
30
|
+
"Whether HTTP or HTTPS should be used to communicate with your Budibase instance.",
|
|
31
|
+
},
|
|
32
|
+
hostname: {
|
|
33
|
+
default: "localhost:10000",
|
|
34
|
+
description: "The URL of your Budibase instance.",
|
|
35
|
+
},
|
|
36
|
+
},
|
|
26
37
|
},
|
|
27
38
|
],
|
|
28
39
|
components: {
|
package/specs/openapi.json
CHANGED
|
@@ -7,12 +7,22 @@
|
|
|
7
7
|
},
|
|
8
8
|
"servers": [
|
|
9
9
|
{
|
|
10
|
-
"url": "
|
|
10
|
+
"url": "https://budibase.app/api/public/v1",
|
|
11
11
|
"description": "Budibase Cloud API"
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
|
-
"url": "{protocol}://{hostname}
|
|
15
|
-
"description": "Budibase self hosted API"
|
|
14
|
+
"url": "{protocol}://{hostname}/api/public/v1",
|
|
15
|
+
"description": "Budibase self hosted API",
|
|
16
|
+
"variables": {
|
|
17
|
+
"protocol": {
|
|
18
|
+
"default": "http",
|
|
19
|
+
"description": "Whether HTTP or HTTPS should be used to communicate with your Budibase instance."
|
|
20
|
+
},
|
|
21
|
+
"hostname": {
|
|
22
|
+
"default": "localhost:10000",
|
|
23
|
+
"description": "The URL of your Budibase instance."
|
|
24
|
+
}
|
|
25
|
+
}
|
|
16
26
|
}
|
|
17
27
|
],
|
|
18
28
|
"components": {
|
package/specs/openapi.yaml
CHANGED
|
@@ -4,10 +4,18 @@ info:
|
|
|
4
4
|
description: The public API for Budibase apps and its services.
|
|
5
5
|
version: 1.0.0
|
|
6
6
|
servers:
|
|
7
|
-
- url:
|
|
7
|
+
- url: https://budibase.app/api/public/v1
|
|
8
8
|
description: Budibase Cloud API
|
|
9
|
-
- url: "{protocol}://{hostname}
|
|
9
|
+
- url: "{protocol}://{hostname}/api/public/v1"
|
|
10
10
|
description: Budibase self hosted API
|
|
11
|
+
variables:
|
|
12
|
+
protocol:
|
|
13
|
+
default: http
|
|
14
|
+
description: Whether HTTP or HTTPS should be used to communicate with your
|
|
15
|
+
Budibase instance.
|
|
16
|
+
hostname:
|
|
17
|
+
default: localhost:10000
|
|
18
|
+
description: The URL of your Budibase instance.
|
|
11
19
|
components:
|
|
12
20
|
parameters:
|
|
13
21
|
tableId:
|
|
@@ -25,7 +25,8 @@ async function makeTableRequest(
|
|
|
25
25
|
operation,
|
|
26
26
|
table,
|
|
27
27
|
tables,
|
|
28
|
-
oldTable = null
|
|
28
|
+
oldTable = null,
|
|
29
|
+
renamed = null
|
|
29
30
|
) {
|
|
30
31
|
const json = {
|
|
31
32
|
endpoint: {
|
|
@@ -41,6 +42,9 @@ async function makeTableRequest(
|
|
|
41
42
|
if (oldTable) {
|
|
42
43
|
json.meta.table = oldTable
|
|
43
44
|
}
|
|
45
|
+
if (renamed) {
|
|
46
|
+
json.meta.renamed = renamed
|
|
47
|
+
}
|
|
44
48
|
return makeExternalQuery(datasource, json)
|
|
45
49
|
}
|
|
46
50
|
|
|
@@ -160,6 +164,7 @@ function isRelationshipSetup(column) {
|
|
|
160
164
|
|
|
161
165
|
exports.save = async function (ctx) {
|
|
162
166
|
const table = ctx.request.body
|
|
167
|
+
const { _rename: renamed } = table
|
|
163
168
|
// can't do this right now
|
|
164
169
|
delete table.dataImport
|
|
165
170
|
const datasourceId = getDatasourceId(ctx.request.body)
|
|
@@ -241,7 +246,14 @@ exports.save = async function (ctx) {
|
|
|
241
246
|
const operation = oldTable
|
|
242
247
|
? DataSourceOperation.UPDATE_TABLE
|
|
243
248
|
: DataSourceOperation.CREATE_TABLE
|
|
244
|
-
await makeTableRequest(
|
|
249
|
+
await makeTableRequest(
|
|
250
|
+
datasource,
|
|
251
|
+
operation,
|
|
252
|
+
tableToSave,
|
|
253
|
+
tables,
|
|
254
|
+
oldTable,
|
|
255
|
+
renamed
|
|
256
|
+
)
|
|
245
257
|
// update any extra tables (like foreign keys in other tables)
|
|
246
258
|
for (let extraTable of extraTablesToUpdate) {
|
|
247
259
|
const oldExtraTable = oldTables[extraTable.name]
|
|
@@ -258,6 +270,8 @@ exports.save = async function (ctx) {
|
|
|
258
270
|
)
|
|
259
271
|
}
|
|
260
272
|
|
|
273
|
+
// remove the rename prop
|
|
274
|
+
delete tableToSave._rename
|
|
261
275
|
// store it into couch now for budibase reference
|
|
262
276
|
datasource.entities[tableToSave.name] = tableToSave
|
|
263
277
|
await db.put(datasource)
|
|
@@ -138,6 +138,11 @@ export interface PaginationJson {
|
|
|
138
138
|
page?: string | number
|
|
139
139
|
}
|
|
140
140
|
|
|
141
|
+
export interface RenameColumn {
|
|
142
|
+
old: string
|
|
143
|
+
updated: string
|
|
144
|
+
}
|
|
145
|
+
|
|
141
146
|
export interface RelationshipsJson {
|
|
142
147
|
through?: string
|
|
143
148
|
from?: string
|
|
@@ -166,6 +171,7 @@ export interface QueryJson {
|
|
|
166
171
|
meta?: {
|
|
167
172
|
table?: Table
|
|
168
173
|
tables?: Record<string, Table>
|
|
174
|
+
renamed: RenameColumn
|
|
169
175
|
}
|
|
170
176
|
extra?: {
|
|
171
177
|
idFilter?: SearchFilters
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { Knex, knex } from "knex"
|
|
2
2
|
import { Table } from "../../definitions/common"
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
Operation,
|
|
5
|
+
QueryJson,
|
|
6
|
+
RenameColumn,
|
|
7
|
+
} from "../../definitions/datasource"
|
|
4
8
|
import { breakExternalTableId } from "../utils"
|
|
5
9
|
import SchemaBuilder = Knex.SchemaBuilder
|
|
6
10
|
import CreateTableBuilder = Knex.CreateTableBuilder
|
|
@@ -10,7 +14,8 @@ function generateSchema(
|
|
|
10
14
|
schema: CreateTableBuilder,
|
|
11
15
|
table: Table,
|
|
12
16
|
tables: Record<string, Table>,
|
|
13
|
-
oldTable: null | Table = null
|
|
17
|
+
oldTable: null | Table = null,
|
|
18
|
+
renamed?: RenameColumn
|
|
14
19
|
) {
|
|
15
20
|
let primaryKey = table && table.primary ? table.primary[0] : null
|
|
16
21
|
const columns = Object.values(table.schema)
|
|
@@ -29,7 +34,11 @@ function generateSchema(
|
|
|
29
34
|
for (let [key, column] of Object.entries(table.schema)) {
|
|
30
35
|
// skip things that are already correct
|
|
31
36
|
const oldColumn = oldTable ? oldTable.schema[key] : null
|
|
32
|
-
if (
|
|
37
|
+
if (
|
|
38
|
+
(oldColumn && oldColumn.type) ||
|
|
39
|
+
(primaryKey === key && !isJunction) ||
|
|
40
|
+
renamed?.updated === key
|
|
41
|
+
) {
|
|
33
42
|
continue
|
|
34
43
|
}
|
|
35
44
|
switch (column.type) {
|
|
@@ -81,6 +90,10 @@ function generateSchema(
|
|
|
81
90
|
}
|
|
82
91
|
}
|
|
83
92
|
|
|
93
|
+
if (renamed) {
|
|
94
|
+
schema.renameColumn(renamed.old, renamed.updated)
|
|
95
|
+
}
|
|
96
|
+
|
|
84
97
|
// need to check if any columns have been deleted
|
|
85
98
|
if (oldTable) {
|
|
86
99
|
const deletedColumns = Object.entries(oldTable.schema)
|
|
@@ -90,6 +103,9 @@ function generateSchema(
|
|
|
90
103
|
)
|
|
91
104
|
.map(([key]) => key)
|
|
92
105
|
deletedColumns.forEach(key => {
|
|
106
|
+
if (renamed?.old === key) {
|
|
107
|
+
return
|
|
108
|
+
}
|
|
93
109
|
if (oldTable.constrained && oldTable.constrained.indexOf(key) !== -1) {
|
|
94
110
|
schema.dropForeign(key)
|
|
95
111
|
}
|
|
@@ -114,10 +130,11 @@ function buildUpdateTable(
|
|
|
114
130
|
knex: SchemaBuilder,
|
|
115
131
|
table: Table,
|
|
116
132
|
tables: Record<string, Table>,
|
|
117
|
-
oldTable: Table
|
|
133
|
+
oldTable: Table,
|
|
134
|
+
renamed: RenameColumn
|
|
118
135
|
): SchemaBuilder {
|
|
119
136
|
return knex.alterTable(table.name, schema => {
|
|
120
|
-
generateSchema(schema, table, tables, oldTable)
|
|
137
|
+
generateSchema(schema, table, tables, oldTable, renamed)
|
|
121
138
|
})
|
|
122
139
|
}
|
|
123
140
|
|
|
@@ -167,7 +184,8 @@ class SqlTableQueryBuilder {
|
|
|
167
184
|
client,
|
|
168
185
|
json.table,
|
|
169
186
|
json.meta.tables,
|
|
170
|
-
json.meta.table
|
|
187
|
+
json.meta.table,
|
|
188
|
+
json.meta.renamed
|
|
171
189
|
)
|
|
172
190
|
break
|
|
173
191
|
case Operation.DELETE_TABLE:
|