mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-30 08:03:58 +00:00
@@ -10,6 +10,10 @@ const dialect = {
|
||||
quoteIdentifier(s) {
|
||||
return s;
|
||||
},
|
||||
columnProperties: {
|
||||
isSparse: false,
|
||||
isPersisted: false,
|
||||
},
|
||||
};
|
||||
|
||||
export const driverBase = {
|
||||
|
||||
2
packages/types/dbinfo.d.ts
vendored
2
packages/types/dbinfo.d.ts
vendored
@@ -54,6 +54,7 @@ export interface ColumnInfo extends NamedObjectInfo {
|
||||
isSparse?: boolean;
|
||||
defaultValue?: string;
|
||||
defaultConstraint?: string;
|
||||
columnComment?: string;
|
||||
}
|
||||
|
||||
export interface DatabaseObjectInfo extends NamedObjectInfo {
|
||||
@@ -63,6 +64,7 @@ export interface DatabaseObjectInfo extends NamedObjectInfo {
|
||||
modifyDate?: string;
|
||||
hashCode?: string;
|
||||
objectTypeField?: string;
|
||||
obejctComment?: string;
|
||||
}
|
||||
|
||||
export interface SqlObjectInfo extends DatabaseObjectInfo {
|
||||
|
||||
@@ -87,6 +87,7 @@
|
||||
export let tableInfo;
|
||||
export let setTableInfo;
|
||||
export let dbInfo;
|
||||
export let driver;
|
||||
|
||||
export function writable() {
|
||||
return !!setTableInfo;
|
||||
@@ -176,7 +177,7 @@
|
||||
header: 'Default value',
|
||||
sortable: true,
|
||||
},
|
||||
{
|
||||
driver?.dialect?.columnProperties?.isSparse && {
|
||||
fieldName: 'isSparse',
|
||||
header: 'Is Sparse',
|
||||
sortable: true,
|
||||
@@ -187,12 +188,17 @@
|
||||
header: 'Computed Expression',
|
||||
sortable: true,
|
||||
},
|
||||
{
|
||||
driver?.dialect?.columnProperties?.isPersisted && {
|
||||
fieldName: 'isPersisted',
|
||||
header: 'Is Persisted',
|
||||
sortable: true,
|
||||
slot: 2,
|
||||
},
|
||||
driver?.dialect?.columnProperties?.columnComment && {
|
||||
fieldName: 'columnComment',
|
||||
header: 'Comment',
|
||||
sortable: true,
|
||||
},
|
||||
writable()
|
||||
? {
|
||||
fieldName: 'actions',
|
||||
|
||||
@@ -75,6 +75,7 @@
|
||||
$: dbInfo = useDatabaseInfo({ conid, database });
|
||||
$: tableInfoWithPairingId = $tableInfo ? generateTablePairingId($tableInfo) : null;
|
||||
$: connection = useConnectionInfo({ conid });
|
||||
$: driver = findEngineDriver($connection, $extensions);
|
||||
|
||||
const { editorState, editorValue, setEditorData, clearEditorData } = useEditorData({ tabid });
|
||||
|
||||
@@ -108,8 +109,6 @@
|
||||
}
|
||||
|
||||
function doSave(createTableName) {
|
||||
const driver = findEngineDriver($connection, $extensions);
|
||||
|
||||
const { sql, recreates } = getAlterTableScript(
|
||||
$editorValue.base,
|
||||
extendTableInfo(fillConstraintNames($editorValue.current, driver.dialect)),
|
||||
@@ -167,6 +166,7 @@
|
||||
bind:this={domEditor}
|
||||
tableInfo={showTable}
|
||||
dbInfo={$dbInfo}
|
||||
{driver}
|
||||
setTableInfo={objectTypeField == 'tables'
|
||||
? tableInfoUpdater =>
|
||||
setEditorData(tbl =>
|
||||
|
||||
@@ -35,6 +35,11 @@ const dialect = {
|
||||
dropCheck: true,
|
||||
|
||||
dropReferencesWhenDropTable: true,
|
||||
|
||||
columnProperties: {
|
||||
isSparse: true,
|
||||
isPersisted: true,
|
||||
},
|
||||
};
|
||||
|
||||
/** @type {import('dbgate-types').EngineDriver} */
|
||||
@@ -66,7 +71,10 @@ const driver = {
|
||||
{ label: 'New view', sql: 'CREATE VIEW myview\nAS\nSELECT * FROM table1' },
|
||||
{ label: 'New procedure', sql: 'CREATE PROCEDURE myproc (@arg1 INT)\nAS\nBEGIN\n SELECT * FROM table1\nEND' },
|
||||
{ label: 'New function', sql: 'CREATE FUNCTION myfunc (@arg1 INT) RETURNS INT\nAS\nBEGIN\n RETURN 1;\nEND' },
|
||||
{ label: 'New table valued function', sql: 'CREATE FUNCTION myfunc (@arg1 INT) RETURNS TABLE \nAS\nRETURN SELECT * FROM table1' },
|
||||
{
|
||||
label: 'New table valued function',
|
||||
sql: 'CREATE FUNCTION myfunc (@arg1 INT) RETURNS TABLE \nAS\nRETURN SELECT * FROM table1',
|
||||
},
|
||||
];
|
||||
},
|
||||
};
|
||||
|
||||
@@ -14,6 +14,7 @@ function getColumnInfo({
|
||||
numericPrecision,
|
||||
numericScale,
|
||||
defaultValue,
|
||||
columnComment,
|
||||
}) {
|
||||
let fullDataType = dataType;
|
||||
if (charMaxLength && isTypeString(dataType)) fullDataType = `${dataType}(${charMaxLength})`;
|
||||
@@ -23,6 +24,7 @@ function getColumnInfo({
|
||||
notNull: !isNullable || isNullable == 'NO' || isNullable == 'no',
|
||||
autoIncrement: !!(extra && extra.toLowerCase().includes('auto_increment')),
|
||||
columnName,
|
||||
columnComment,
|
||||
dataType: fullDataType,
|
||||
defaultValue,
|
||||
};
|
||||
|
||||
@@ -8,6 +8,7 @@ select
|
||||
NUMERIC_PRECISION as numericPrecision,
|
||||
NUMERIC_SCALE as numericScale,
|
||||
COLUMN_DEFAULT as defaultValue,
|
||||
COLUMN_COMMENT as columnComment,
|
||||
EXTRA as extra
|
||||
from INFORMATION_SCHEMA.COLUMNS
|
||||
where TABLE_SCHEMA = '#DATABASE#' and TABLE_NAME =OBJECT_ID_CONDITION
|
||||
|
||||
@@ -30,6 +30,10 @@ const dialect = {
|
||||
dropCheck: true,
|
||||
|
||||
dropReferencesWhenDropTable: false,
|
||||
|
||||
columnProperties: {
|
||||
columnComment: true,
|
||||
},
|
||||
};
|
||||
|
||||
const mysqlDriverBase = {
|
||||
@@ -44,7 +48,11 @@ const mysqlDriverBase = {
|
||||
getNewObjectTemplates() {
|
||||
return [
|
||||
{ label: 'New view', sql: 'CREATE VIEW myview\nAS\nSELECT * FROM table1' },
|
||||
{ label: 'New procedure', sql: 'DELIMITER //\n\nCREATE PROCEDURE myproc (IN arg1 INT)\nBEGIN\n SELECT * FROM table1;\nEND\n\nDELIMITER ;' },
|
||||
{
|
||||
label: 'New procedure',
|
||||
sql:
|
||||
'DELIMITER //\n\nCREATE PROCEDURE myproc (IN arg1 INT)\nBEGIN\n SELECT * FROM table1;\nEND\n\nDELIMITER ;',
|
||||
},
|
||||
{ label: 'New function', sql: 'CREATE FUNCTION myfunc (arg1 INT)\nRETURNS INT DETERMINISTIC\nRETURN 1' },
|
||||
];
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user