test: 对齐统一时间列默认值契约
This commit is contained in:
parent
8dccecb350
commit
7b8c141f7e
@ -23,6 +23,7 @@ type ColumnContract = {
|
|||||||
const varchar = (propertyName: string, length: number, nullable = false): ColumnContract => ({ default: null, length, name: propertyName.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`), nullable, precision: null, primary: false, propertyName, type: 'varchar', unsigned: false });
|
const varchar = (propertyName: string, length: number, nullable = false): ColumnContract => ({ default: null, length, name: propertyName.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`), nullable, precision: null, primary: false, propertyName, type: 'varchar', unsigned: false });
|
||||||
const bigint = (propertyName: string, nullable = false, primary = false): ColumnContract => ({ default: null, length: null, name: propertyName.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`), nullable, precision: null, primary, propertyName, type: 'bigint', unsigned: false });
|
const bigint = (propertyName: string, nullable = false, primary = false): ColumnContract => ({ default: null, length: null, name: propertyName.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`), nullable, precision: null, primary, propertyName, type: 'bigint', unsigned: false });
|
||||||
const datetime = (propertyName: string, nullable = false): ColumnContract => ({ default: null, length: null, name: propertyName.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`), nullable, precision: 6, primary: false, propertyName, type: 'datetime', unsigned: false });
|
const datetime = (propertyName: string, nullable = false): ColumnContract => ({ default: null, length: null, name: propertyName.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`), nullable, precision: 6, primary: false, propertyName, type: 'datetime', unsigned: false });
|
||||||
|
const generatedDatetime = (propertyName: string): ColumnContract => ({ ...datetime(propertyName), default: 'CURRENT_TIMESTAMP(6)' });
|
||||||
const boolean = (propertyName: string, defaultValue: boolean): ColumnContract => ({ default: defaultValue, length: null, name: propertyName.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`), nullable: false, precision: null, primary: false, propertyName, type: 'tinyint', unsigned: false });
|
const boolean = (propertyName: string, defaultValue: boolean): ColumnContract => ({ default: defaultValue, length: null, name: propertyName.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`), nullable: false, precision: null, primary: false, propertyName, type: 'tinyint', unsigned: false });
|
||||||
|
|
||||||
const persistenceContract: ReadonlyArray<{
|
const persistenceContract: ReadonlyArray<{
|
||||||
@ -39,7 +40,7 @@ const persistenceContract: ReadonlyArray<{
|
|||||||
{ ...varchar('sourceConfig', 0), length: null, type: 'json' },
|
{ ...varchar('sourceConfig', 0), length: null, type: 'json' },
|
||||||
{ ...varchar('sourceConfigDigest', 64), type: 'char' }, varchar('activeKey', 255, true),
|
{ ...varchar('sourceConfigDigest', 64), type: 'char' }, varchar('activeKey', 255, true),
|
||||||
boolean('enabled', true), varchar('remark', 500, true), boolean('isDeleted', false),
|
boolean('enabled', true), varchar('remark', 500, true), boolean('isDeleted', false),
|
||||||
datetime('createTime'), datetime('updateTime'),
|
generatedDatetime('createTime'), generatedDatetime('updateTime'),
|
||||||
],
|
],
|
||||||
indexes: [{ name: 'uk_qqbot_message_subscription_active_key', columns: ['activeKey'], unique: true }],
|
indexes: [{ name: 'uk_qqbot_message_subscription_active_key', columns: ['activeKey'], unique: true }],
|
||||||
},
|
},
|
||||||
@ -49,7 +50,7 @@ const persistenceContract: ReadonlyArray<{
|
|||||||
columns: [
|
columns: [
|
||||||
bigint('id', false, true), varchar('name', 100), varchar('sourceKey', 128),
|
bigint('id', false, true), varchar('name', 100), varchar('sourceKey', 128),
|
||||||
{ ...varchar('content', 0), length: null, type: 'text' }, boolean('enabled', true),
|
{ ...varchar('content', 0), length: null, type: 'text' }, boolean('enabled', true),
|
||||||
varchar('remark', 500, true), boolean('isDeleted', false), datetime('createTime'), datetime('updateTime'),
|
varchar('remark', 500, true), boolean('isDeleted', false), generatedDatetime('createTime'), generatedDatetime('updateTime'),
|
||||||
],
|
],
|
||||||
indexes: [],
|
indexes: [],
|
||||||
},
|
},
|
||||||
@ -59,7 +60,7 @@ const persistenceContract: ReadonlyArray<{
|
|||||||
columns: [
|
columns: [
|
||||||
bigint('id', false, true), bigint('subscriptionId'), bigint('accountId'), varchar('selfId', 64),
|
bigint('id', false, true), bigint('subscriptionId'), bigint('accountId'), varchar('selfId', 64),
|
||||||
bigint('templateId'), varchar('activeKey', 255, true), boolean('enabled', true),
|
bigint('templateId'), varchar('activeKey', 255, true), boolean('enabled', true),
|
||||||
boolean('isDeleted', false), datetime('createTime'), datetime('updateTime'),
|
boolean('isDeleted', false), generatedDatetime('createTime'), generatedDatetime('updateTime'),
|
||||||
],
|
],
|
||||||
indexes: [{ name: 'uk_qqbot_message_publish_binding_active_key', columns: ['activeKey'], unique: true }],
|
indexes: [{ name: 'uk_qqbot_message_publish_binding_active_key', columns: ['activeKey'], unique: true }],
|
||||||
},
|
},
|
||||||
@ -69,7 +70,7 @@ const persistenceContract: ReadonlyArray<{
|
|||||||
columns: [
|
columns: [
|
||||||
bigint('id', false, true), bigint('bindingId'), varchar('targetType', 16), varchar('targetId', 64),
|
bigint('id', false, true), bigint('bindingId'), varchar('targetType', 16), varchar('targetId', 64),
|
||||||
varchar('targetName', 120, true), varchar('activeKey', 300, true), boolean('enabled', true),
|
varchar('targetName', 120, true), varchar('activeKey', 300, true), boolean('enabled', true),
|
||||||
boolean('isDeleted', false), datetime('createTime'), datetime('updateTime'),
|
boolean('isDeleted', false), generatedDatetime('createTime'), generatedDatetime('updateTime'),
|
||||||
],
|
],
|
||||||
indexes: [{ name: 'uk_qqbot_message_publish_target_active_key', columns: ['activeKey'], unique: true }],
|
indexes: [{ name: 'uk_qqbot_message_publish_target_active_key', columns: ['activeKey'], unique: true }],
|
||||||
},
|
},
|
||||||
@ -82,7 +83,7 @@ const persistenceContract: ReadonlyArray<{
|
|||||||
{ ...varchar('fanoutStatus', 32), default: 'accepted' },
|
{ ...varchar('fanoutStatus', 32), default: 'accepted' },
|
||||||
{ ...varchar('fanoutAttemptCount', 0), default: 0, length: null, type: 'int', unsigned: true },
|
{ ...varchar('fanoutAttemptCount', 0), default: 0, length: null, type: 'int', unsigned: true },
|
||||||
datetime('nextFanoutAt', true), datetime('fanoutLeaseUntil', true), varchar('lastErrorCode', 64, true),
|
datetime('nextFanoutAt', true), datetime('fanoutLeaseUntil', true), varchar('lastErrorCode', 64, true),
|
||||||
varchar('lastErrorMessage', 500, true), datetime('createTime'), datetime('updateTime'),
|
varchar('lastErrorMessage', 500, true), generatedDatetime('createTime'), generatedDatetime('updateTime'),
|
||||||
],
|
],
|
||||||
indexes: [
|
indexes: [
|
||||||
{ name: 'uk_qqbot_message_event_event_id', columns: ['eventId'], unique: true },
|
{ name: 'uk_qqbot_message_event_event_id', columns: ['eventId'], unique: true },
|
||||||
@ -102,7 +103,7 @@ const persistenceContract: ReadonlyArray<{
|
|||||||
varchar('status', 32), { ...varchar('attemptCount', 0), default: 0, length: null, type: 'int', unsigned: true },
|
varchar('status', 32), { ...varchar('attemptCount', 0), default: 0, length: null, type: 'int', unsigned: true },
|
||||||
datetime('nextAttemptAt', true), datetime('processingLeaseUntil', true), bigint('sendLogId', true),
|
datetime('nextAttemptAt', true), datetime('processingLeaseUntil', true), bigint('sendLogId', true),
|
||||||
varchar('lastErrorCode', 64, true), varchar('lastErrorMessage', 500, true), datetime('expiresAt'),
|
varchar('lastErrorCode', 64, true), varchar('lastErrorMessage', 500, true), datetime('expiresAt'),
|
||||||
datetime('createTime'), datetime('updateTime'),
|
generatedDatetime('createTime'), generatedDatetime('updateTime'),
|
||||||
],
|
],
|
||||||
indexes: [
|
indexes: [
|
||||||
{ name: 'uk_qqbot_message_delivery_event_target', columns: ['messageEventId', 'publishTargetId'], unique: true },
|
{ name: 'uk_qqbot_message_delivery_event_target', columns: ['messageEventId', 'publishTargetId'], unique: true },
|
||||||
@ -125,7 +126,9 @@ const sortByPropertyName = <T extends { propertyName: string }>(values: readonly
|
|||||||
const getColumns = (entity: EntityClass): ColumnContract[] => getMetadataArgsStorage()
|
const getColumns = (entity: EntityClass): ColumnContract[] => getMetadataArgsStorage()
|
||||||
.columns.filter((column) => column.target === entity)
|
.columns.filter((column) => column.target === entity)
|
||||||
.map((column) => ({
|
.map((column) => ({
|
||||||
default: column.options.default ?? null,
|
default: typeof column.options.default === 'function'
|
||||||
|
? column.options.default()
|
||||||
|
: column.options.default ?? null,
|
||||||
length: column.options.length === undefined ? null : Number(column.options.length),
|
length: column.options.length === undefined ? null : Number(column.options.length),
|
||||||
name: `${column.options.name || column.propertyName}`,
|
name: `${column.options.name || column.propertyName}`,
|
||||||
nullable: column.options.nullable === true,
|
nullable: column.options.nullable === true,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user