mirror of
https://github.com/directus/directus.git
synced 2026-04-25 03:00:53 -04:00
Fixed an issue that would cause "text" fields to show up as varchar with length -1 in MS SQL (#6055)
Fixes #5944
This commit is contained in:
@@ -98,6 +98,11 @@ export default function getLocalType(
|
||||
return 'decimal';
|
||||
}
|
||||
|
||||
/** Handle MS SQL varchar(MAX) (eg TEXT) types */
|
||||
if (column.data_type === 'nvarchar' && column.max_length === -1) {
|
||||
return 'text';
|
||||
}
|
||||
|
||||
if (field?.special?.includes('json')) return 'json';
|
||||
if (field?.special?.includes('hash')) return 'hash';
|
||||
if (field?.special?.includes('csv')) return 'csv';
|
||||
|
||||
@@ -65,7 +65,7 @@ export const useCollectionsStore = createStore({
|
||||
this.translateCollections();
|
||||
},
|
||||
translateCollections() {
|
||||
this.state.collections = this.state.collections.map((collection: CollectionRaw) => {
|
||||
this.state.collections = this.state.collections.map((collection: Collection) => {
|
||||
let name: string | VueI18n.TranslateResult;
|
||||
|
||||
if (i18n.te(`collection_names.${collection.collection}`)) {
|
||||
|
||||
@@ -30,5 +30,5 @@ export interface CollectionRaw {
|
||||
export interface Collection extends CollectionRaw {
|
||||
name: string | VueI18n.TranslateResult;
|
||||
icon: string;
|
||||
color: string | null;
|
||||
color?: string | null;
|
||||
}
|
||||
|
||||
88
package-lock.json
generated
88
package-lock.json
generated
@@ -54,17 +54,17 @@
|
||||
},
|
||||
"api": {
|
||||
"name": "directus",
|
||||
"version": "9.0.0-rc.71",
|
||||
"version": "9.0.0-rc.72",
|
||||
"license": "GPL-3.0-only",
|
||||
"dependencies": {
|
||||
"@directus/app": "9.0.0-rc.71",
|
||||
"@directus/drive": "9.0.0-rc.71",
|
||||
"@directus/drive-azure": "9.0.0-rc.71",
|
||||
"@directus/drive-gcs": "9.0.0-rc.71",
|
||||
"@directus/drive-s3": "9.0.0-rc.71",
|
||||
"@directus/format-title": "9.0.0-rc.71",
|
||||
"@directus/schema": "9.0.0-rc.71",
|
||||
"@directus/specs": "9.0.0-rc.71",
|
||||
"@directus/app": "9.0.0-rc.72",
|
||||
"@directus/drive": "9.0.0-rc.72",
|
||||
"@directus/drive-azure": "9.0.0-rc.72",
|
||||
"@directus/drive-gcs": "9.0.0-rc.72",
|
||||
"@directus/drive-s3": "9.0.0-rc.72",
|
||||
"@directus/format-title": "9.0.0-rc.72",
|
||||
"@directus/schema": "9.0.0-rc.72",
|
||||
"@directus/specs": "9.0.0-rc.72",
|
||||
"@godaddy/terminus": "^4.7.2",
|
||||
"argon2": "^0.28.1",
|
||||
"async": "^3.2.0",
|
||||
@@ -324,10 +324,10 @@
|
||||
},
|
||||
"app": {
|
||||
"name": "@directus/app",
|
||||
"version": "9.0.0-rc.71",
|
||||
"version": "9.0.0-rc.72",
|
||||
"devDependencies": {
|
||||
"@directus/docs": "9.0.0-rc.71",
|
||||
"@directus/format-title": "9.0.0-rc.71",
|
||||
"@directus/docs": "9.0.0-rc.72",
|
||||
"@directus/format-title": "9.0.0-rc.72",
|
||||
"@fullcalendar/core": "^5.7.0",
|
||||
"@fullcalendar/daygrid": "^5.7.0",
|
||||
"@fullcalendar/interaction": "^5.7.0",
|
||||
@@ -461,7 +461,7 @@
|
||||
},
|
||||
"docs": {
|
||||
"name": "@directus/docs",
|
||||
"version": "9.0.0-rc.71",
|
||||
"version": "9.0.0-rc.72",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"directory-tree": "^2.2.9",
|
||||
@@ -50782,11 +50782,11 @@
|
||||
},
|
||||
"packages/cli": {
|
||||
"name": "@directus/cli",
|
||||
"version": "9.0.0-rc.71",
|
||||
"version": "9.0.0-rc.72",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@directus/format-title": "9.0.0-rc.71",
|
||||
"@directus/sdk": "9.0.0-rc.71",
|
||||
"@directus/format-title": "9.0.0-rc.72",
|
||||
"@directus/sdk": "9.0.0-rc.72",
|
||||
"@types/yargs": "^16.0.1",
|
||||
"app-module-path": "^2.2.0",
|
||||
"chalk": "^4.1.0",
|
||||
@@ -51009,7 +51009,7 @@
|
||||
}
|
||||
},
|
||||
"packages/create-directus-project": {
|
||||
"version": "9.0.0-rc.71",
|
||||
"version": "9.0.0-rc.72",
|
||||
"license": "GPL-3.0-only",
|
||||
"dependencies": {
|
||||
"chalk": "^4.1.1",
|
||||
@@ -51078,7 +51078,7 @@
|
||||
},
|
||||
"packages/drive": {
|
||||
"name": "@directus/drive",
|
||||
"version": "9.0.0-rc.71",
|
||||
"version": "9.0.0-rc.72",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"fs-extra": "^10.0.0",
|
||||
@@ -51097,11 +51097,11 @@
|
||||
},
|
||||
"packages/drive-azure": {
|
||||
"name": "@directus/drive-azure",
|
||||
"version": "9.0.0-rc.71",
|
||||
"version": "9.0.0-rc.72",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@azure/storage-blob": "^12.2.1",
|
||||
"@directus/drive": "9.0.0-rc.71",
|
||||
"@directus/drive": "9.0.0-rc.72",
|
||||
"normalize-path": "^3.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -51142,10 +51142,10 @@
|
||||
},
|
||||
"packages/drive-gcs": {
|
||||
"name": "@directus/drive-gcs",
|
||||
"version": "9.0.0-rc.71",
|
||||
"version": "9.0.0-rc.72",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@directus/drive": "9.0.0-rc.71",
|
||||
"@directus/drive": "9.0.0-rc.72",
|
||||
"@google-cloud/storage": "^5.8.5",
|
||||
"normalize-path": "^3.0.0"
|
||||
},
|
||||
@@ -51173,10 +51173,10 @@
|
||||
},
|
||||
"packages/drive-s3": {
|
||||
"name": "@directus/drive-s3",
|
||||
"version": "9.0.0-rc.71",
|
||||
"version": "9.0.0-rc.72",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@directus/drive": "9.0.0-rc.71",
|
||||
"@directus/drive": "9.0.0-rc.72",
|
||||
"aws-sdk": "^2.911.0",
|
||||
"normalize-path": "^3.0.0"
|
||||
},
|
||||
@@ -51241,7 +51241,7 @@
|
||||
},
|
||||
"packages/format-title": {
|
||||
"name": "@directus/format-title",
|
||||
"version": "9.0.0-rc.71",
|
||||
"version": "9.0.0-rc.72",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@rollup/plugin-commonjs": "^19.0.0",
|
||||
@@ -51260,7 +51260,7 @@
|
||||
},
|
||||
"packages/gatsby-source-directus": {
|
||||
"name": "@directus/gatsby-source-directus",
|
||||
"version": "9.0.0-rc.71",
|
||||
"version": "9.0.0-rc.72",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@directus/sdk-js": "^9.0.0-rc.53",
|
||||
@@ -53915,7 +53915,7 @@
|
||||
},
|
||||
"packages/schema": {
|
||||
"name": "@directus/schema",
|
||||
"version": "9.0.0-rc.71",
|
||||
"version": "9.0.0-rc.72",
|
||||
"license": "GPL-3.0",
|
||||
"dependencies": {
|
||||
"knex-schema-inspector": "^1.3.0",
|
||||
@@ -53928,7 +53928,7 @@
|
||||
},
|
||||
"packages/sdk": {
|
||||
"name": "@directus/sdk",
|
||||
"version": "9.0.0-rc.71",
|
||||
"version": "9.0.0-rc.72",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"axios": "^0.21.1"
|
||||
@@ -54156,7 +54156,7 @@
|
||||
},
|
||||
"packages/specs": {
|
||||
"name": "@directus/specs",
|
||||
"version": "9.0.0-rc.71",
|
||||
"version": "9.0.0-rc.72",
|
||||
"license": "GPL-3.0",
|
||||
"dependencies": {
|
||||
"openapi3-ts": "^2.0.1"
|
||||
@@ -55787,8 +55787,8 @@
|
||||
"@directus/app": {
|
||||
"version": "file:app",
|
||||
"requires": {
|
||||
"@directus/docs": "9.0.0-rc.71",
|
||||
"@directus/format-title": "9.0.0-rc.71",
|
||||
"@directus/docs": "9.0.0-rc.72",
|
||||
"@directus/format-title": "9.0.0-rc.72",
|
||||
"@fullcalendar/core": "^5.7.0",
|
||||
"@fullcalendar/daygrid": "^5.7.0",
|
||||
"@fullcalendar/interaction": "^5.7.0",
|
||||
@@ -55900,8 +55900,8 @@
|
||||
"@directus/cli": {
|
||||
"version": "file:packages/cli",
|
||||
"requires": {
|
||||
"@directus/format-title": "9.0.0-rc.71",
|
||||
"@directus/sdk": "9.0.0-rc.71",
|
||||
"@directus/format-title": "9.0.0-rc.72",
|
||||
"@directus/sdk": "9.0.0-rc.72",
|
||||
"@types/figlet": "^1.5.0",
|
||||
"@types/fs-extra": "^9.0.11",
|
||||
"@types/jest": "^26.0.23",
|
||||
@@ -56129,7 +56129,7 @@
|
||||
"version": "file:packages/drive-azure",
|
||||
"requires": {
|
||||
"@azure/storage-blob": "^12.2.1",
|
||||
"@directus/drive": "9.0.0-rc.71",
|
||||
"@directus/drive": "9.0.0-rc.72",
|
||||
"@types/fs-extra": "^9.0.11",
|
||||
"@types/jest": "^26.0.22",
|
||||
"@types/node": "^15.9.0",
|
||||
@@ -56165,7 +56165,7 @@
|
||||
"@directus/drive-gcs": {
|
||||
"version": "file:packages/drive-gcs",
|
||||
"requires": {
|
||||
"@directus/drive": "9.0.0-rc.71",
|
||||
"@directus/drive": "9.0.0-rc.72",
|
||||
"@google-cloud/storage": "^5.8.5",
|
||||
"@lukeed/uuid": "^2.0.0",
|
||||
"@types/fs-extra": "^9.0.11",
|
||||
@@ -56191,7 +56191,7 @@
|
||||
"@directus/drive-s3": {
|
||||
"version": "file:packages/drive-s3",
|
||||
"requires": {
|
||||
"@directus/drive": "9.0.0-rc.71",
|
||||
"@directus/drive": "9.0.0-rc.72",
|
||||
"@lukeed/uuid": "^2.0.0",
|
||||
"@types/fs-extra": "^9.0.11",
|
||||
"@types/jest": "^26.0.22",
|
||||
@@ -70968,14 +70968,14 @@
|
||||
"directus": {
|
||||
"version": "file:api",
|
||||
"requires": {
|
||||
"@directus/app": "9.0.0-rc.71",
|
||||
"@directus/drive": "9.0.0-rc.71",
|
||||
"@directus/drive-azure": "9.0.0-rc.71",
|
||||
"@directus/drive-gcs": "9.0.0-rc.71",
|
||||
"@directus/drive-s3": "9.0.0-rc.71",
|
||||
"@directus/format-title": "9.0.0-rc.71",
|
||||
"@directus/schema": "9.0.0-rc.71",
|
||||
"@directus/specs": "9.0.0-rc.71",
|
||||
"@directus/app": "9.0.0-rc.72",
|
||||
"@directus/drive": "9.0.0-rc.72",
|
||||
"@directus/drive-azure": "9.0.0-rc.72",
|
||||
"@directus/drive-gcs": "9.0.0-rc.72",
|
||||
"@directus/drive-s3": "9.0.0-rc.72",
|
||||
"@directus/format-title": "9.0.0-rc.72",
|
||||
"@directus/schema": "9.0.0-rc.72",
|
||||
"@directus/specs": "9.0.0-rc.72",
|
||||
"@godaddy/terminus": "^4.7.2",
|
||||
"@keyv/redis": "^2.1.2",
|
||||
"@types/async": "^3.2.6",
|
||||
|
||||
@@ -14,6 +14,7 @@ export default class MSSQL extends KnexMSSQL implements SchemaInspector {
|
||||
c.COLUMN_DEFAULT as default_value,
|
||||
c.IS_NULLABLE as is_nullable,
|
||||
c.DATA_TYPE as data_type,
|
||||
c.CHARACTER_MAXIMUM_LENGTH as max_length,
|
||||
pk.PK_SET as column_key,
|
||||
COLUMNPROPERTY(OBJECT_ID(c.TABLE_SCHEMA + '.' + c.TABLE_NAME), c.COLUMN_NAME, 'IsIdentity') as is_identity
|
||||
FROM
|
||||
|
||||
@@ -13,6 +13,7 @@ export default class MySQL extends KnexMySQL implements SchemaInspector {
|
||||
C.IS_NULLABLE as is_nullable,
|
||||
C.COLUMN_TYPE as data_type,
|
||||
C.COLUMN_KEY as column_key,
|
||||
C.CHARACTER_MAXIMUM_LENGTH as max_length,
|
||||
C.EXTRA as extra
|
||||
FROM
|
||||
INFORMATION_SCHEMA.COLUMNS AS C
|
||||
|
||||
@@ -40,6 +40,7 @@ export default class Oracle extends KnexOracle implements SchemaInspector {
|
||||
NUMERIC_PRECISION: number | null;
|
||||
NUMERIC_SCALE: number | null;
|
||||
COLUMN_KEY: string;
|
||||
MAX_LENGTH: number | null;
|
||||
};
|
||||
|
||||
type RawColumnLowercase = {
|
||||
@@ -51,6 +52,7 @@ export default class Oracle extends KnexOracle implements SchemaInspector {
|
||||
numeric_precision: number | null;
|
||||
numeric_scale: number | null;
|
||||
column_key: string;
|
||||
max_length: number | null;
|
||||
};
|
||||
|
||||
const columns = await this.knex.raw<RawColumn[]>(`
|
||||
@@ -62,7 +64,8 @@ export default class Oracle extends KnexOracle implements SchemaInspector {
|
||||
"USER_TAB_COLUMNS"."DATA_TYPE" AS DATA_TYPE,
|
||||
"USER_TAB_COLUMNS"."DATA_PRECISION" AS NUMERIC_PRECISION,
|
||||
"USER_TAB_COLUMNS"."DATA_SCALE" AS NUMERIC_SCALE,
|
||||
"USER_CONSTRAINTS"."CONSTRAINT_TYPE" AS COLUMN_KEY
|
||||
"USER_CONSTRAINTS"."CONSTRAINT_TYPE" AS COLUMN_KEY,
|
||||
"USER_TAB_COLUMNS"."CHAR_LENGTH" as MAX_LENGTH
|
||||
FROM
|
||||
"USER_TAB_COLUMNS"
|
||||
LEFT JOIN "USER_CONS_COLUMNS" ON "USER_TAB_COLUMNS"."TABLE_NAME" = "USER_CONS_COLUMNS"."TABLE_NAME"
|
||||
|
||||
@@ -15,6 +15,7 @@ export default class Postgres extends KnexPostgres implements SchemaInspector {
|
||||
c.column_default as default_value,
|
||||
c.is_nullable,
|
||||
c.data_type,
|
||||
c.character_maximum_length as max_length,
|
||||
c.is_identity
|
||||
FROM
|
||||
information_schema.columns c
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import KnexSQLite from 'knex-schema-inspector/dist/dialects/sqlite';
|
||||
import extractMaxLength from 'knex-schema-inspector/lib/utils/extract-max-length';
|
||||
import extractType from 'knex-schema-inspector/lib/utils/extract-type';
|
||||
import { SchemaOverview } from '../types/overview';
|
||||
import { SchemaInspector } from '../types/schema';
|
||||
|
||||
@@ -39,7 +41,8 @@ export default class SQLite extends KnexSQLite implements SchemaInspector {
|
||||
? 'AUTO_INCREMENT'
|
||||
: column.dflt_value,
|
||||
is_nullable: column.notnull == 0,
|
||||
data_type: column.type,
|
||||
data_type: extractType(column.type),
|
||||
max_length: extractMaxLength(column.type),
|
||||
numeric_precision: null,
|
||||
numeric_scale: null,
|
||||
};
|
||||
|
||||
@@ -10,6 +10,7 @@ export type SchemaOverview = {
|
||||
data_type: string;
|
||||
numeric_precision: number | null;
|
||||
numeric_scale: number | null;
|
||||
max_length: number | null;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user