Skip to content

Commit

Permalink
wip: default values jhipster#25094
Browse files Browse the repository at this point in the history
  • Loading branch information
OmarHawk committed Mar 18, 2024
1 parent 5dddbea commit 7a9b6dd
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -200,12 +200,23 @@ _%>
<%_ for (field of fields) {
const { fieldName, fieldTypeBoolean, fieldTypeTimed, fieldTypeLocalDate } = field;
_%>
<%_ if (field.id) { _%>
<%= fieldName %>: null,
<%_ } else if (fieldTypeBoolean) { _%>
<%= fieldName %>: false,
<%_ } else if (fieldTypeTimed) { _%>
<%= fieldName %>: currentTime,

<%_ if (field.fieldDefaultValueDefined) { _%>
<%_ if (field.fieldTypeCharSequence) { _%>
<%= fieldName %>: '<%= field.defaultValue %>',
<%_ } else if (fieldTypeTimed) { _%>
<%= fieldName %>: dayjs('<%= field.defaultValue %>'),
<%_ } else { _%>
<%= fieldName %>: <%= field.defaultValue %>,
<%_ } _%>
<%_ } else { _%>
<%_ if (field.id) { _%>
<%= fieldName %>: null,
<%_ } else if (fieldTypeBoolean) { _%>
<%= fieldName %>: false,
<%_ } else if (fieldTypeTimed) { _%>
<%= fieldName %>: currentTime,
<%_ } _%>
<%_ } _%>
<%_ } _%>
<%_ for (const relationship of relationships.filter(({ persistableRelationship }) => persistableRelationship)) {
Expand Down
4 changes: 3 additions & 1 deletion generators/base-application/support/prepare-field.js
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ function _derivedProperties(field) {
fieldType === INTEGER || fieldType === LONG || fieldType === FLOAT || fieldType === DOUBLE || fieldType === BIG_DECIMAL,
fieldTypeBinary: fieldType === BYTES || fieldType === BYTE_BUFFER,
fieldTypeTimed: fieldType === ZONED_DATE_TIME || fieldType === INSTANT,
fieldTypeCharSequence: fieldType === STRING || fieldType === UUID,
fieldTypeCharSequence: fieldType === STRING || fieldType === UUID || fieldType === TEXT_BLOB,
fieldTypeTemporal: fieldType === ZONED_DATE_TIME || fieldType === INSTANT || fieldType === LOCAL_DATE,
fieldValidationRequired: validationRules.includes(REQUIRED),
fieldValidationMin: validationRules.includes(MIN),
Expand All @@ -254,6 +254,8 @@ function _derivedProperties(field) {
fieldValidationUnique: validationRules.includes(UNIQUE),
fieldValidationMinBytes: validationRules.includes(MINBYTES),
fieldValidationMaxBytes: validationRules.includes(MAXBYTES),
fieldDefaultValueDefined: field.defaultValue !== undefined,
fieldHasAnyDefaultValue: field.defaultValue !== undefined && field.defaultValueComputed !== undefined,
});
}

Expand Down
2 changes: 1 addition & 1 deletion generators/liquibase/support/prepare-field.js
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ export default function prepareField(entity, field) {
mutateData(field, {
__override__: false,
columnType: data => parseLiquibaseColumnType(entity, data),
shouldDropDefaultValue: data => data.fieldType === ZONED_DATE_TIME || data.fieldType === INSTANT,
shouldDropDefaultValue: data => !data.fieldHasAnyDefaultValue && (data.fieldType === ZONED_DATE_TIME || data.fieldType === INSTANT),
shouldCreateContentType: data => data.fieldType === BYTES && data.fieldTypeBlobContent !== TEXT,
columnRequired: data => data.nullable === false || (data.fieldValidate === true && data.fieldValidateRules.includes('required')),
nullable: data => !data.columnRequired,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
<changeSet id="<%= changelogDate %>-1" author="jhipster">
<createTable tableName="<%= entity.entityTableName %>"<%- this.formatAsLiquibaseRemarks(entity.documentation, true) %>>
<%_ for (field of fields) { _%>
<column name="<%= field.columnName %>" type="<%= field.columnType %>"<%- this.formatAsLiquibaseRemarks(field.documentation, true) %><% if (field.id && field.liquibaseAutoIncrement) { %> autoIncrement="true" startWith="1500"<%_ } %>>
<column name="<%= field.columnName %>" type="<%= field.columnType %>"<%- include('./default-field-value', {field}) -%><%- this.formatAsLiquibaseRemarks(field.documentation, true) %><% if (field.id && field.liquibaseAutoIncrement) { %> autoIncrement="true" startWith="1500"<%_ } %>>
<%_ if (field.id) { _%>
<constraints primaryKey="true" nullable="false"/>
<%_ } else if (field.unique) { _%>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<%_ if (field.defaultValueComputed) { -%>
defaultValueComputed="<%= field.defaultValueComputed %>"<% -%>
<%_ } else if (field.fieldDefaultValueDefined) { -%>
<%_ if (field.fieldTypeCharSequence) { -%>
defaultValue="<%= field.defaultValue %>"<% -%>
<%_ } else if (field.fieldTypeNumeric) { -%>
defaultValueNumeric="<%= field.defaultValue %>"<% -%>
<%_ } else if (field.fieldTypeDateTime) { -%>
defaultValueDate="<%= field.defaultValue %>"<% -%>
<%_ } else if (field.fieldTypeBoolean) { -%>
defaultValueBoolean="<%= field.defaultValue %>"<% -%>
<%_ } else { -%>
defaultValue="<%= field.defaultValue %>"<% -%>
<%_ } -%>
<%_ } -%>
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,14 @@
<changeSet id="<%= changelogDate %>-1-add-columns" author="jhipster">
<addColumn tableName="<%= entity.entityTableName %>">
<%_ for (field of addedFields) { _%>
<column name="<%= field.columnName %>" type="<%= field.columnType %>"<%- this.formatAsLiquibaseRemarks(field.documentation, true) %>/>
<column name="<%= field.columnName %>" type="<%= field.columnType %>"<%- include('./default-field-value', {field}) -%><%- this.formatAsLiquibaseRemarks(field.documentation, true) %>/>
<%_ if (field.shouldCreateContentType) { _%>
<column name="<%= field.columnName %>_content_type" type="varchar(255)"/>
<%_ }
} // End for (field of addedFields) _%>
</addColumn>
<%_ for (field of addedFields) {
if (field.fieldType === 'ZonedDateTime' || field.fieldType === 'Instant') { _%>
if (field.shouldDropDefaultValue) { _%>
<dropDefaultValue tableName="<%= entity.entityTableName %>" columnName="<%= field.columnName %>" columnDataType="datetime"/>
<%_ } _%>
<%_ } _%>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,12 @@ if (hasFieldConstraint) { _%>
constraintName="<%= field.uniqueConstraintName %>"/>
<%_ }
if (field.columnRequired) {
if (!field.fieldHasAnyDefaultValue) {
_%>
<addNotNullConstraint tableName="<%= entityTableName %>"
columnName="<%= field.columnName %>"
columnDataType="<%= field.columnType %>"/>
<%_ } _%>
<%_ if (field.shouldCreateContentType) { _%>
<addNotNullConstraint tableName="<%= entityTableName %>"
columnName="<%= field.columnName %>_content_type"
Expand Down

0 comments on commit 7a9b6dd

Please sign in to comment.