mirror of
https://github.com/Fabio286/antares.git
synced 2025-02-01 01:46:46 +01:00
fix: better detection and handling of field default type
This commit is contained in:
parent
29e2d92b5b
commit
3baf6fa173
@ -695,7 +695,7 @@ export class MySQLClient extends AntaresCore {
|
|||||||
}, []).join(',')
|
}, []).join(',')
|
||||||
: '';
|
: '';
|
||||||
|
|
||||||
const sql = `CREATE ${routine.definer ? `DEFINER=${routine.definer} ` : ''}PROCEDURE \`${routine.name}\`(${parameters})
|
const sql = `CREATE ${routine.definer ? `DEFINER=${routine.definer} ` : ''}PROCEDURE \`${this._schema}\`.\`${routine.name}\`(${parameters})
|
||||||
LANGUAGE SQL
|
LANGUAGE SQL
|
||||||
${routine.deterministic ? 'DETERMINISTIC' : 'NOT DETERMINISTIC'}
|
${routine.deterministic ? 'DETERMINISTIC' : 'NOT DETERMINISTIC'}
|
||||||
${routine.dataAccess}
|
${routine.dataAccess}
|
||||||
@ -1090,7 +1090,7 @@ export class MySQLClient extends AntaresCore {
|
|||||||
${addition.zerofill ? 'ZEROFILL' : ''}
|
${addition.zerofill ? 'ZEROFILL' : ''}
|
||||||
${addition.nullable ? 'NULL' : 'NOT NULL'}
|
${addition.nullable ? 'NULL' : 'NOT NULL'}
|
||||||
${addition.autoIncrement ? 'AUTO_INCREMENT' : ''}
|
${addition.autoIncrement ? 'AUTO_INCREMENT' : ''}
|
||||||
${addition.default ? `DEFAULT ${typeof addition.default === 'string' ? `'${addition.default}'` : addition.default}` : ''}
|
${addition.default ? `DEFAULT ${addition.default}` : ''}
|
||||||
${addition.comment ? `COMMENT '${addition.comment}'` : ''}
|
${addition.comment ? `COMMENT '${addition.comment}'` : ''}
|
||||||
${addition.collation ? `COLLATE ${addition.collation}` : ''}
|
${addition.collation ? `COLLATE ${addition.collation}` : ''}
|
||||||
${addition.onUpdate ? `ON UPDATE ${addition.onUpdate}` : ''}
|
${addition.onUpdate ? `ON UPDATE ${addition.onUpdate}` : ''}
|
||||||
@ -1128,7 +1128,7 @@ export class MySQLClient extends AntaresCore {
|
|||||||
${change.zerofill ? 'ZEROFILL' : ''}
|
${change.zerofill ? 'ZEROFILL' : ''}
|
||||||
${change.nullable ? 'NULL' : 'NOT NULL'}
|
${change.nullable ? 'NULL' : 'NOT NULL'}
|
||||||
${change.autoIncrement ? 'AUTO_INCREMENT' : ''}
|
${change.autoIncrement ? 'AUTO_INCREMENT' : ''}
|
||||||
${change.default ? `DEFAULT ${typeof change.default === 'string' ? `'${change.default}'` : change.default}` : ''}
|
${change.default ? `DEFAULT ${change.default}` : ''}
|
||||||
${change.comment ? `COMMENT '${change.comment}'` : ''}
|
${change.comment ? `COMMENT '${change.comment}'` : ''}
|
||||||
${change.collation ? `COLLATE ${change.collation}` : ''}
|
${change.collation ? `COLLATE ${change.collation}` : ''}
|
||||||
${change.onUpdate ? `ON UPDATE ${change.onUpdate}` : ''}
|
${change.onUpdate ? `ON UPDATE ${change.onUpdate}` : ''}
|
||||||
|
@ -1047,7 +1047,7 @@ export class PostgreSQLClient extends AntaresCore {
|
|||||||
${addition.zerofill ? 'ZEROFILL' : ''}
|
${addition.zerofill ? 'ZEROFILL' : ''}
|
||||||
${addition.nullable ? 'NULL' : 'NOT NULL'}
|
${addition.nullable ? 'NULL' : 'NOT NULL'}
|
||||||
${addition.autoIncrement ? 'AUTO_INCREMENT' : ''}
|
${addition.autoIncrement ? 'AUTO_INCREMENT' : ''}
|
||||||
${addition.default ? `DEFAULT ${typeof addition.default === 'string' ? `'${addition.default}'` : addition.default}` : ''}
|
${addition.default ? `DEFAULT ${addition.default}` : ''}
|
||||||
${addition.comment ? `COMMENT '${addition.comment}'` : ''}
|
${addition.comment ? `COMMENT '${addition.comment}'` : ''}
|
||||||
${addition.collation ? `COLLATE ${addition.collation}` : ''}
|
${addition.collation ? `COLLATE ${addition.collation}` : ''}
|
||||||
${addition.onUpdate ? `ON UPDATE ${addition.onUpdate}` : ''}`);
|
${addition.onUpdate ? `ON UPDATE ${addition.onUpdate}` : ''}`);
|
||||||
@ -1093,7 +1093,7 @@ export class PostgreSQLClient extends AntaresCore {
|
|||||||
|
|
||||||
alterColumns.push(`ALTER COLUMN "${change.name}" TYPE ${localType}${length ? `(${length})` : ''}${change.isArray ? '[]' : ''} USING "${change.name}"::${localType}`);
|
alterColumns.push(`ALTER COLUMN "${change.name}" TYPE ${localType}${length ? `(${length})` : ''}${change.isArray ? '[]' : ''} USING "${change.name}"::${localType}`);
|
||||||
alterColumns.push(`ALTER COLUMN "${change.name}" ${change.nullable ? 'DROP NOT NULL' : 'SET NOT NULL'}`);
|
alterColumns.push(`ALTER COLUMN "${change.name}" ${change.nullable ? 'DROP NOT NULL' : 'SET NOT NULL'}`);
|
||||||
alterColumns.push(`ALTER COLUMN "${change.name}" ${change.default ? `SET DEFAULT ${typeof change.default === 'string' ? `'${change.default}'` : change.default}` : 'DROP DEFAULT'}`);
|
alterColumns.push(`ALTER COLUMN "${change.name}" ${change.default ? `SET DEFAULT ${change.default}` : 'DROP DEFAULT'}`);
|
||||||
if (['SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].includes(change.type)) {
|
if (['SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].includes(change.type)) {
|
||||||
const sequenceName = `${table}_${change.name}_seq`.replace(' ', '_');
|
const sequenceName = `${table}_${change.name}_seq`.replace(' ', '_');
|
||||||
createSequences.push(`CREATE SEQUENCE IF NOT EXISTS ${sequenceName} OWNED BY "${table}"."${change.name}"`);
|
createSequences.push(`CREATE SEQUENCE IF NOT EXISTS ${sequenceName} OWNED BY "${table}"."${change.name}"`);
|
||||||
|
@ -233,6 +233,20 @@ export default {
|
|||||||
const { status, response } = await Tables.getTableColumns(params);
|
const { status, response } = await Tables.getTableColumns(params);
|
||||||
if (status === 'success') {
|
if (status === 'success') {
|
||||||
this.originalFields = response.map(field => {
|
this.originalFields = response.map(field => {
|
||||||
|
if (field.autoIncrement)
|
||||||
|
field.defaultType = 'autoincrement';
|
||||||
|
else if (field.default === null)
|
||||||
|
field.defaultType = 'noval';
|
||||||
|
else if (field.default === 'NULL')
|
||||||
|
field.defaultType = 'null';
|
||||||
|
else if (field.default.match(/^\s*(\w+)\s*\((.*)\)$/))
|
||||||
|
field.defaultType = 'expression';
|
||||||
|
else {
|
||||||
|
field.defaultType = 'custom';
|
||||||
|
if (isNaN(field.default) && !field.default.includes('\''))
|
||||||
|
field.default = `'${field.default}'`;
|
||||||
|
}
|
||||||
|
|
||||||
return { ...field, _id: uidGen() };
|
return { ...field, _id: uidGen() };
|
||||||
});
|
});
|
||||||
this.localFields = JSON.parse(JSON.stringify(this.originalFields));
|
this.localFields = JSON.parse(JSON.stringify(this.originalFields));
|
||||||
|
@ -444,25 +444,11 @@ export default {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.defaultValue.onUpdate = this.localRow.onUpdate;
|
this.defaultValue.onUpdate = this.localRow.onUpdate;
|
||||||
|
this.defaultValue.type = this.localRow.defaultType;
|
||||||
if (this.localRow.autoIncrement)
|
if (this.defaultValue.type === 'custom')
|
||||||
this.defaultValue.type = 'autoincrement';
|
|
||||||
else if (this.localRow.default === null)
|
|
||||||
this.defaultValue.type = 'noval';
|
|
||||||
else if (this.localRow.default === 'NULL')
|
|
||||||
this.defaultValue.type = 'null';
|
|
||||||
else if (this.localRow.default.match(/^'.*'$/g)) {
|
|
||||||
this.defaultValue.type = 'custom';
|
|
||||||
this.defaultValue.custom = this.localRow.default.replaceAll(/(^')|('$)/g, '');
|
|
||||||
}
|
|
||||||
else if (!isNaN(this.localRow.default.replace(/[:.-\s]/g, ''))) {
|
|
||||||
this.defaultValue.type = 'custom';
|
|
||||||
this.defaultValue.custom = this.localRow.default;
|
this.defaultValue.custom = this.localRow.default;
|
||||||
}
|
if (this.defaultValue.type === 'expression')
|
||||||
else {
|
|
||||||
this.defaultValue.type = 'expression';
|
|
||||||
this.defaultValue.expression = this.localRow.default;
|
this.defaultValue.expression = this.localRow.default;
|
||||||
}
|
|
||||||
},
|
},
|
||||||
editON (event, content, field) {
|
editON (event, content, field) {
|
||||||
if (field === 'length') {
|
if (field === 'length') {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user