외부커넥션관리
This commit is contained in:
@@ -27,16 +27,12 @@ model external_call_configs {
|
||||
api_type String? @db.VarChar(20)
|
||||
config_data Json
|
||||
description String?
|
||||
company_code String @default("*") @db.VarChar(20)
|
||||
is_active String? @default("Y") @db.Char(1)
|
||||
created_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
created_by String? @db.VarChar(50)
|
||||
updated_date DateTime? @default(now()) @updatedAt @db.Timestamp(6)
|
||||
updated_by String? @db.VarChar(50)
|
||||
|
||||
@@index([is_active], map: "idx_external_call_configs_active")
|
||||
@@index([company_code], map: "idx_external_call_configs_company")
|
||||
@@index([call_type, api_type], map: "idx_external_call_configs_type")
|
||||
company_code String @default("*") @db.VarChar(20)
|
||||
created_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
updated_date DateTime? @default(now()) @updatedAt @db.Timestamp(6)
|
||||
}
|
||||
|
||||
model external_db_connections {
|
||||
@@ -62,6 +58,9 @@ model external_db_connections {
|
||||
updated_date DateTime? @default(now()) @updatedAt @db.Timestamp(6)
|
||||
updated_by String? @db.VarChar(50)
|
||||
|
||||
// 관계
|
||||
collection_configs data_collection_configs[]
|
||||
|
||||
@@index([connection_name], map: "idx_external_db_connections_name")
|
||||
}
|
||||
|
||||
@@ -3968,9 +3967,6 @@ model table_relationships {
|
||||
updated_date DateTime? @db.Timestamp(6)
|
||||
updated_by String? @db.VarChar(50)
|
||||
diagram_id Int?
|
||||
|
||||
// 역방향 관계
|
||||
bridges data_relationship_bridge[]
|
||||
}
|
||||
|
||||
model data_relationship_bridge {
|
||||
@@ -3993,9 +3989,6 @@ model data_relationship_bridge {
|
||||
to_key_value String? @db.VarChar(500)
|
||||
to_record_id String? @db.VarChar(100)
|
||||
|
||||
// 관계 정의
|
||||
relationship table_relationships? @relation(fields: [relationship_id], references: [relationship_id])
|
||||
|
||||
@@index([connection_type], map: "idx_data_bridge_connection_type")
|
||||
@@index([company_code, is_active], map: "idx_data_bridge_company_active")
|
||||
}
|
||||
@@ -4088,55 +4081,434 @@ model table_relationships_backup {
|
||||
}
|
||||
|
||||
model test_sales_info {
|
||||
sales_no String @id @db.VarChar(20)
|
||||
contract_type String? @db.VarChar(50)
|
||||
order_seq Int?
|
||||
domestic_foreign String? @db.VarChar(20)
|
||||
customer_name String? @db.VarChar(200)
|
||||
product_type String? @db.VarChar(100)
|
||||
machine_type String? @db.VarChar(100)
|
||||
customer_project_name String? @db.VarChar(200)
|
||||
expected_delivery_date DateTime? @db.Date
|
||||
receiving_location String? @db.VarChar(200)
|
||||
setup_location String? @db.VarChar(200)
|
||||
equipment_direction String? @db.VarChar(100)
|
||||
equipment_count Int? @default(0)
|
||||
equipment_type String? @db.VarChar(100)
|
||||
equipment_length Decimal? @db.Decimal(10,2)
|
||||
manager_name String? @db.VarChar(100)
|
||||
reg_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
status String? @default("진행중") @db.VarChar(50)
|
||||
|
||||
// 관계 정의: 영업 정보에서 프로젝트로
|
||||
projects test_project_info[]
|
||||
sales_no String @id(map: "pk_test_sales_info") @db.VarChar(200)
|
||||
contract_type String? @db.VarChar(50)
|
||||
order_seq Int?
|
||||
domestic_foreign String? @db.VarChar(20)
|
||||
customer_name String? @db.VarChar(200)
|
||||
product_type String? @db.VarChar(100)
|
||||
machine_type String? @db.VarChar(100)
|
||||
customer_project_name String? @db.VarChar(200)
|
||||
expected_delivery_date DateTime? @db.Date
|
||||
receiving_location String? @db.VarChar(200)
|
||||
setup_location String? @db.VarChar(200)
|
||||
equipment_direction String? @db.VarChar(100)
|
||||
equipment_count Int? @default(0)
|
||||
equipment_type String? @db.VarChar(100)
|
||||
equipment_length Decimal? @db.Decimal(10, 2)
|
||||
manager_name String? @db.VarChar(100)
|
||||
reg_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
status String? @default("진행중") @db.VarChar(50)
|
||||
}
|
||||
|
||||
model test_project_info {
|
||||
project_no String @id @db.VarChar(200)
|
||||
sales_no String? @db.VarChar(20)
|
||||
contract_type String? @db.VarChar(50)
|
||||
order_seq Int?
|
||||
domestic_foreign String? @db.VarChar(20)
|
||||
customer_name String? @db.VarChar(200)
|
||||
|
||||
// 프로젝트 전용 컬럼들
|
||||
project_status String? @default("PLANNING") @db.VarChar(50)
|
||||
project_start_date DateTime? @db.Date
|
||||
project_end_date DateTime? @db.Date
|
||||
project_manager String? @db.VarChar(100)
|
||||
project_description String? @db.Text
|
||||
|
||||
// 시스템 관리 컬럼들
|
||||
created_by String? @db.VarChar(100)
|
||||
created_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
updated_by String? @db.VarChar(100)
|
||||
updated_date DateTime? @default(now()) @updatedAt @db.Timestamp(6)
|
||||
|
||||
// 관계 정의: 영업 정보 참조
|
||||
sales test_sales_info? @relation(fields: [sales_no], references: [sales_no])
|
||||
|
||||
project_no String @id @db.VarChar(200)
|
||||
sales_no String? @db.VarChar(20)
|
||||
contract_type String? @db.VarChar(50)
|
||||
order_seq Int?
|
||||
domestic_foreign String? @db.VarChar(20)
|
||||
customer_name String? @db.VarChar(200)
|
||||
project_status String? @default("PLANNING") @db.VarChar(50)
|
||||
project_start_date DateTime? @db.Date
|
||||
project_end_date DateTime? @db.Date
|
||||
project_manager String? @db.VarChar(100)
|
||||
project_description String?
|
||||
created_by String? @db.VarChar(100)
|
||||
created_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
updated_by String? @db.VarChar(100)
|
||||
updated_date DateTime? @default(now()) @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@index([sales_no], map: "idx_project_sales_no")
|
||||
@@index([project_status], map: "idx_project_status")
|
||||
@@index([customer_name], map: "idx_project_customer")
|
||||
@@index([project_manager], map: "idx_project_manager")
|
||||
}
|
||||
|
||||
model batch_jobs {
|
||||
id Int @id @default(autoincrement())
|
||||
job_name String @db.VarChar(100)
|
||||
job_type String @db.VarChar(20)
|
||||
description String?
|
||||
created_by String? @db.VarChar(50)
|
||||
updated_by String? @db.VarChar(50)
|
||||
company_code String @default("*") @db.VarChar(20)
|
||||
config_json Json?
|
||||
created_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
execution_count Int @default(0)
|
||||
failure_count Int @default(0)
|
||||
last_executed_at DateTime? @db.Timestamp(6)
|
||||
next_execution_at DateTime? @db.Timestamp(6)
|
||||
schedule_cron String? @db.VarChar(100)
|
||||
success_count Int @default(0)
|
||||
updated_date DateTime? @default(now()) @updatedAt @db.Timestamp(6)
|
||||
is_active String @default("Y") @db.Char(1)
|
||||
|
||||
@@index([job_type], map: "idx_batch_jobs_type")
|
||||
@@index([company_code], map: "idx_batch_jobs_company_code")
|
||||
}
|
||||
|
||||
/// This table contains check constraints and requires additional setup for migrations. Visit https://pris.ly/d/check-constraints for more info.
|
||||
model batch_job_executions {
|
||||
id Int @id @default(autoincrement())
|
||||
job_id Int
|
||||
execution_id String @unique @db.VarChar(100)
|
||||
start_time DateTime @db.Timestamp(6)
|
||||
end_time DateTime? @db.Timestamp(6)
|
||||
status String @default("STARTED") @db.VarChar(20)
|
||||
exit_code Int?
|
||||
exit_message String?
|
||||
parameters Json?
|
||||
logs String?
|
||||
created_at DateTime? @default(now()) @db.Timestamp(6)
|
||||
|
||||
@@index([execution_id], map: "idx_batch_executions_execution_id")
|
||||
@@index([job_id], map: "idx_batch_executions_job_id")
|
||||
@@index([start_time], map: "idx_batch_executions_start_time")
|
||||
@@index([status], map: "idx_batch_executions_status")
|
||||
}
|
||||
|
||||
model batch_job_parameters {
|
||||
id Int @id @default(autoincrement())
|
||||
job_id Int
|
||||
parameter_name String @db.VarChar(100)
|
||||
parameter_value String?
|
||||
parameter_type String? @default("STRING") @db.VarChar(50)
|
||||
is_required Boolean? @default(false)
|
||||
description String?
|
||||
created_at DateTime? @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime? @db.Timestamp(6)
|
||||
|
||||
@@unique([job_id, parameter_name])
|
||||
@@index([job_id], map: "idx_batch_parameters_job_id")
|
||||
}
|
||||
|
||||
model batch_schedules {
|
||||
id Int @id @default(autoincrement())
|
||||
job_id Int
|
||||
schedule_name String @db.VarChar(255)
|
||||
cron_expression String @db.VarChar(100)
|
||||
timezone String? @default("Asia/Seoul") @db.VarChar(50)
|
||||
is_active Boolean? @default(true)
|
||||
start_date DateTime? @db.Date
|
||||
end_date DateTime? @db.Date
|
||||
created_by String @db.VarChar(100)
|
||||
created_at DateTime? @default(now()) @db.Timestamp(6)
|
||||
updated_by String? @db.VarChar(100)
|
||||
updated_at DateTime? @db.Timestamp(6)
|
||||
|
||||
@@index([is_active], map: "idx_batch_schedules_active")
|
||||
@@index([job_id], map: "idx_batch_schedules_job_id")
|
||||
}
|
||||
|
||||
/// This table contains check constraints and requires additional setup for migrations. Visit https://pris.ly/d/check-constraints for more info.
|
||||
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
|
||||
model dataflow_external_calls {
|
||||
id Int @id @default(autoincrement())
|
||||
diagram_id Int
|
||||
source_table String @db.VarChar(100)
|
||||
trigger_condition Json
|
||||
external_call_config_id Int
|
||||
message_template String?
|
||||
is_active String? @default("Y") @db.Char(1)
|
||||
created_by Int?
|
||||
updated_by Int?
|
||||
created_at DateTime? @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime? @default(now()) @db.Timestamp(6)
|
||||
}
|
||||
|
||||
model ddl_execution_log {
|
||||
id Int @id @default(autoincrement())
|
||||
user_id String @db.VarChar(100)
|
||||
company_code String @db.VarChar(50)
|
||||
ddl_type String @db.VarChar(50)
|
||||
table_name String @db.VarChar(100)
|
||||
ddl_query String
|
||||
success Boolean
|
||||
error_message String?
|
||||
executed_at DateTime? @default(now()) @db.Timestamp(6)
|
||||
}
|
||||
|
||||
/// This table contains check constraints and requires additional setup for migrations. Visit https://pris.ly/d/check-constraints for more info.
|
||||
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
|
||||
model external_call_logs {
|
||||
id Int @id @default(autoincrement())
|
||||
dataflow_external_call_id Int?
|
||||
external_call_config_id Int
|
||||
trigger_data Json?
|
||||
request_data Json?
|
||||
response_data Json?
|
||||
status String @db.VarChar(20)
|
||||
error_message String?
|
||||
execution_time Int?
|
||||
executed_at DateTime? @default(now()) @db.Timestamp(6)
|
||||
|
||||
@@index([executed_at], map: "idx_external_call_logs_executed")
|
||||
}
|
||||
|
||||
model my_custom_table {
|
||||
id Int @id @default(autoincrement())
|
||||
created_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
updated_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
company_code String? @default("*") @db.VarChar(50)
|
||||
customer_name String? @db.VarChar
|
||||
email_address String? @db.VarChar(255)
|
||||
}
|
||||
|
||||
model table_type_columns {
|
||||
id Int @id @default(autoincrement())
|
||||
table_name String @db.VarChar(255)
|
||||
column_name String @db.VarChar(255)
|
||||
input_type String @default("text") @db.VarChar(50)
|
||||
detail_settings String? @default("{}")
|
||||
is_nullable String? @default("Y") @db.VarChar(10)
|
||||
display_order Int? @default(0)
|
||||
created_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
updated_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
|
||||
@@unique([table_name, column_name])
|
||||
@@index([input_type], map: "idx_table_type_columns_input_type")
|
||||
@@index([table_name], map: "idx_table_type_columns_table_name")
|
||||
}
|
||||
|
||||
model test_api_integration_1758589777139 {
|
||||
id String @id @default(dbgenerated("(gen_random_uuid())::text")) @db.VarChar(500)
|
||||
created_date String? @default(dbgenerated("(now())::text")) @db.VarChar(500)
|
||||
updated_date String? @default(dbgenerated("(now())::text")) @db.VarChar(500)
|
||||
writer String? @db.VarChar(500)
|
||||
company_code String? @default("*") @db.VarChar(500)
|
||||
product_name String? @db.VarChar(500)
|
||||
price String? @db.VarChar(500)
|
||||
category String? @db.VarChar(500)
|
||||
}
|
||||
|
||||
model test_new_table {
|
||||
id Int @id @default(autoincrement())
|
||||
created_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
updated_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
company_code String? @default("*") @db.VarChar(50)
|
||||
name String? @db.VarChar
|
||||
email String? @db.VarChar(255)
|
||||
user_test_column String? @db.VarChar
|
||||
dsfsdf123215 String? @db.VarChar
|
||||
aaaassda String? @db.VarChar
|
||||
}
|
||||
|
||||
model test_new_table33333 {
|
||||
id Int @id @default(autoincrement())
|
||||
created_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
updated_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
writer String? @db.VarChar(100)
|
||||
company_code String? @default("*") @db.VarChar(50)
|
||||
eeeeeeee String? @db.VarChar(500)
|
||||
wwww String? @db.VarChar(500)
|
||||
sssss String? @db.VarChar(500)
|
||||
}
|
||||
|
||||
model test_new_table44444 {
|
||||
id String @id @default(dbgenerated("(gen_random_uuid())::text")) @db.VarChar(500)
|
||||
created_date String? @default(dbgenerated("(now())::text")) @db.VarChar(500)
|
||||
updated_date String? @default(dbgenerated("(now())::text")) @db.VarChar(500)
|
||||
writer String? @db.VarChar(500)
|
||||
company_code String? @db.VarChar(500)
|
||||
ttttttt String? @db.VarChar(500)
|
||||
yyyyyyy String? @db.VarChar(500)
|
||||
uuuuuuu String? @db.VarChar(500)
|
||||
iiiiiii String? @db.VarChar(500)
|
||||
}
|
||||
|
||||
model test_new_table555555 {
|
||||
id String @id @default(dbgenerated("(gen_random_uuid())::text")) @db.VarChar(500)
|
||||
created_date String? @default(dbgenerated("(now())::text")) @db.VarChar(500)
|
||||
updated_date String? @default(dbgenerated("(now())::text")) @db.VarChar(500)
|
||||
writer String? @db.VarChar(500)
|
||||
company_code String? @db.VarChar(500)
|
||||
rtrtrtrtr String? @db.VarChar(500)
|
||||
ererwewewe String? @db.VarChar(500)
|
||||
wetyeryrtyut String? @db.VarChar(500)
|
||||
werwqq String? @db.VarChar(500)
|
||||
saved_file_name String? @db.VarChar(500)
|
||||
}
|
||||
|
||||
model test_table_info {
|
||||
id Int @id @default(autoincrement())
|
||||
created_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
updated_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
company_code String? @default("*") @db.VarChar(50)
|
||||
objid Int
|
||||
test_name String? @db.VarChar(250)
|
||||
ggggggggggg String? @db.VarChar
|
||||
test_column_1 String? @db.VarChar
|
||||
test_column_2 String? @db.VarChar
|
||||
test_column_3 String? @db.VarChar
|
||||
final_test_column String? @db.VarChar
|
||||
zzzzzzz String? @db.VarChar
|
||||
bbbbbbb String? @db.VarChar
|
||||
realtime_test String? @db.VarChar
|
||||
table_update_test String? @db.VarChar
|
||||
}
|
||||
|
||||
model test_table_info2222 {
|
||||
id Int @id @default(autoincrement())
|
||||
created_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
updated_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
company_code String? @default("*") @db.VarChar(50)
|
||||
clll_cc String? @db.VarChar
|
||||
eeee_eee String? @db.VarChar
|
||||
saved_file_name String? @db.VarChar
|
||||
debug_test_column String? @db.VarChar
|
||||
field_1 String? @db.VarChar
|
||||
rrrrrrrrrr String? @db.VarChar
|
||||
tttttttt String? @db.VarChar
|
||||
}
|
||||
|
||||
model test_varchar_unified {
|
||||
id String @id @default(dbgenerated("(gen_random_uuid())::text")) @db.VarChar(500)
|
||||
created_date String? @default(dbgenerated("(now())::text")) @db.VarChar(500)
|
||||
updated_date String? @default(dbgenerated("(now())::text")) @db.VarChar(500)
|
||||
writer String? @db.VarChar(500)
|
||||
company_code String? @default("*") @db.VarChar(500)
|
||||
product_name String? @db.VarChar(500)
|
||||
price String? @db.VarChar(500)
|
||||
launch_date String? @db.VarChar(500)
|
||||
is_active String? @db.VarChar(500)
|
||||
}
|
||||
|
||||
model test_varchar_unified_1758588878993 {
|
||||
id String @id @default(dbgenerated("(gen_random_uuid())::text")) @db.VarChar(500)
|
||||
created_date String? @default(dbgenerated("(now())::text")) @db.VarChar(500)
|
||||
updated_date String? @default(dbgenerated("(now())::text")) @db.VarChar(500)
|
||||
writer String? @db.VarChar(500)
|
||||
company_code String? @default("*") @db.VarChar(500)
|
||||
product_name String? @db.VarChar(500)
|
||||
price String? @db.VarChar(500)
|
||||
launch_date String? @db.VarChar(500)
|
||||
is_active String? @db.VarChar(500)
|
||||
}
|
||||
|
||||
model writer_test_table {
|
||||
id Int @id @default(autoincrement())
|
||||
created_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
updated_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
writer String? @db.VarChar(100)
|
||||
company_code String? @default("*") @db.VarChar(50)
|
||||
test_field String? @db.VarChar
|
||||
field_1 String? @db.VarChar
|
||||
}
|
||||
|
||||
// 데이터 수집 설정 테이블
|
||||
model data_collection_configs {
|
||||
id Int @id @default(autoincrement())
|
||||
config_name String @db.VarChar(100)
|
||||
description String?
|
||||
source_connection_id Int
|
||||
source_table String @db.VarChar(100)
|
||||
target_table String? @db.VarChar(100)
|
||||
collection_type String @db.VarChar(20) // full, incremental, delta
|
||||
schedule_cron String? @db.VarChar(100)
|
||||
is_active String @default("Y") @db.Char(1)
|
||||
last_collected_at DateTime? @db.Timestamp(6)
|
||||
collection_options Json?
|
||||
created_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
created_by String? @db.VarChar(50)
|
||||
updated_date DateTime? @default(now()) @updatedAt @db.Timestamp(6)
|
||||
updated_by String? @db.VarChar(50)
|
||||
company_code String @default("*") @db.VarChar(20)
|
||||
|
||||
// 관계
|
||||
collection_jobs data_collection_jobs[]
|
||||
collection_history data_collection_history[]
|
||||
external_connection external_db_connections @relation(fields: [source_connection_id], references: [id])
|
||||
|
||||
@@index([source_connection_id], map: "idx_data_collection_configs_connection")
|
||||
@@index([is_active], map: "idx_data_collection_configs_active")
|
||||
@@index([company_code], map: "idx_data_collection_configs_company")
|
||||
}
|
||||
|
||||
// 데이터 수집 작업 테이블
|
||||
model data_collection_jobs {
|
||||
id Int @id @default(autoincrement())
|
||||
config_id Int
|
||||
job_status String @db.VarChar(20) // pending, running, completed, failed
|
||||
started_at DateTime? @db.Timestamp(6)
|
||||
completed_at DateTime? @db.Timestamp(6)
|
||||
records_processed Int? @default(0)
|
||||
error_message String?
|
||||
job_details Json?
|
||||
created_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
|
||||
// 관계
|
||||
config data_collection_configs @relation(fields: [config_id], references: [id], onDelete: Cascade)
|
||||
|
||||
@@index([config_id], map: "idx_data_collection_jobs_config")
|
||||
@@index([job_status], map: "idx_data_collection_jobs_status")
|
||||
@@index([created_date], map: "idx_data_collection_jobs_created")
|
||||
}
|
||||
|
||||
// 데이터 수집 이력 테이블
|
||||
model data_collection_history {
|
||||
id Int @id @default(autoincrement())
|
||||
config_id Int
|
||||
collection_date DateTime @db.Timestamp(6)
|
||||
records_collected Int @default(0)
|
||||
execution_time_ms Int @default(0)
|
||||
status String @db.VarChar(20) // success, partial, failed
|
||||
error_details String?
|
||||
created_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
|
||||
// 관계
|
||||
config data_collection_configs @relation(fields: [config_id], references: [id], onDelete: Cascade)
|
||||
|
||||
@@index([config_id], map: "idx_data_collection_history_config")
|
||||
@@index([collection_date], map: "idx_data_collection_history_date")
|
||||
@@index([status], map: "idx_data_collection_history_status")
|
||||
}
|
||||
|
||||
// 데이터 수집 배치 관리 테이블 (기존 batch_jobs와 구분)
|
||||
model collection_batch_management {
|
||||
id Int @id @default(autoincrement())
|
||||
batch_name String @db.VarChar(100)
|
||||
description String?
|
||||
batch_type String @db.VarChar(20) // collection, sync, cleanup, custom
|
||||
schedule_cron String? @db.VarChar(100)
|
||||
is_active String @default("Y") @db.Char(1)
|
||||
config_json Json?
|
||||
last_executed_at DateTime? @db.Timestamp(6)
|
||||
next_execution_at DateTime? @db.Timestamp(6)
|
||||
execution_count Int @default(0)
|
||||
success_count Int @default(0)
|
||||
failure_count Int @default(0)
|
||||
created_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
created_by String? @db.VarChar(50)
|
||||
updated_date DateTime? @default(now()) @updatedAt @db.Timestamp(6)
|
||||
updated_by String? @db.VarChar(50)
|
||||
company_code String @default("*") @db.VarChar(20)
|
||||
|
||||
// 관계
|
||||
batch_executions collection_batch_executions[]
|
||||
|
||||
@@index([batch_type], map: "idx_collection_batch_mgmt_type")
|
||||
@@index([is_active], map: "idx_collection_batch_mgmt_active")
|
||||
@@index([company_code], map: "idx_collection_batch_mgmt_company")
|
||||
@@index([next_execution_at], map: "idx_collection_batch_mgmt_next_execution")
|
||||
}
|
||||
|
||||
// 데이터 수집 배치 실행 테이블
|
||||
model collection_batch_executions {
|
||||
id Int @id @default(autoincrement())
|
||||
batch_id Int
|
||||
execution_status String @db.VarChar(20) // pending, running, completed, failed, cancelled
|
||||
started_at DateTime? @db.Timestamp(6)
|
||||
completed_at DateTime? @db.Timestamp(6)
|
||||
execution_time_ms Int?
|
||||
result_data Json?
|
||||
error_message String?
|
||||
log_details String?
|
||||
created_date DateTime? @default(now()) @db.Timestamp(6)
|
||||
|
||||
// 관계
|
||||
batch collection_batch_management @relation(fields: [batch_id], references: [id], onDelete: Cascade)
|
||||
|
||||
@@index([batch_id], map: "idx_collection_batch_executions_batch")
|
||||
@@index([execution_status], map: "idx_collection_batch_executions_status")
|
||||
@@index([created_date], map: "idx_collection_batch_executions_created")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user