@@ -39,10 +39,14 @@ func Open(dbPath string) (*Store, error) {
3939 database .Close ()
4040 return nil , fmt .Errorf ("执行迁移失败: %w" , err )
4141 }
42- if err = ensureExecutionLogsResultColumn (database ); err != nil {
42+ if err = ensureExecutionLogsColumn (database , "result" ); err != nil {
4343 database .Close ()
4444 return nil , fmt .Errorf ("升级 execution_logs.result 列失败: %w" , err )
4545 }
46+ if err = ensureExecutionLogsColumn (database , "stdin" ); err != nil {
47+ database .Close ()
48+ return nil , fmt .Errorf ("升级 execution_logs.stdin 列失败: %w" , err )
49+ }
4650 store := & Store {db : database }
4751 store .AppConfig = & AppConfigDao {store : database }
4852 return store , nil
@@ -200,12 +204,13 @@ func (s *Store) SetWorkerEnabled(ctx context.Context, id string, enabled bool) (
200204// InsertWorkerLog 写入函数执行日志。
201205func (s * Store ) InsertWorkerLog (ctx context.Context , log model.WorkerLog ) error {
202206 _ , err := s .db .ExecContext (ctx , `
203- INSERT INTO execution_logs(id, worker_id, request_id, status, stdout, stderr, result, error, duration_ms)
204- VALUES(?,?,?,?,?,?,?,?,?)` ,
207+ INSERT INTO execution_logs(id, worker_id, request_id, status, stdin, stdout, stderr, result, error, duration_ms)
208+ VALUES(?,?,?,?,?,?,?,?,?,? )` ,
205209 log .ID ,
206210 log .WorkerID ,
207211 log .RequestID ,
208212 log .Status ,
213+ log .Stdin ,
209214 log .Stdout ,
210215 log .Stderr ,
211216 log .Result ,
@@ -234,7 +239,7 @@ WHERE worker_id = ?`, workerID).Scan(&total); err != nil {
234239
235240 offset := (page - 1 ) * pageSize
236241 rows , err := s .db .QueryContext (ctx , `
237- SELECT id, worker_id, request_id, status, stdout, stderr, result, error, duration_ms, created_at
242+ SELECT id, worker_id, request_id, status, stdin, stdout, stderr, result, error, duration_ms, created_at
238243FROM execution_logs
239244WHERE worker_id = ?
240245ORDER BY created_at DESC, id DESC
@@ -246,13 +251,15 @@ LIMIT ? OFFSET ?`, workerID, pageSize, offset)
246251
247252 result := make ([]model.WorkerLog , 0 , pageSize )
248253 for rows .Next () {
254+ var stdinText sql.NullString
249255 var resultText sql.NullString
250256 var item model.WorkerLog
251257 if err := rows .Scan (
252258 & item .ID ,
253259 & item .WorkerID ,
254260 & item .RequestID ,
255261 & item .Status ,
262+ & stdinText ,
256263 & item .Stdout ,
257264 & item .Stderr ,
258265 & resultText ,
@@ -262,6 +269,11 @@ LIMIT ? OFFSET ?`, workerID, pageSize, offset)
262269 ); err != nil {
263270 return nil , 0 , err
264271 }
272+ if stdinText .Valid {
273+ item .Stdin = stdinText .String
274+ } else {
275+ item .Stdin = ""
276+ }
265277 if resultText .Valid {
266278 item .Result = resultText .String
267279 } else {
@@ -310,7 +322,7 @@ func boolToInt(v bool) int {
310322 return 0
311323}
312324
313- func ensureExecutionLogsResultColumn (database * sql.DB ) error {
325+ func ensureExecutionLogsColumn (database * sql.DB , columnName string ) error {
314326 rows , err := database .Query (`PRAGMA table_info(execution_logs)` )
315327 if err != nil {
316328 return err
@@ -329,14 +341,14 @@ func ensureExecutionLogsResultColumn(database *sql.DB) error {
329341 if err := rows .Scan (& cid , & name , & colType , & notNull , & defaultV , & primaryID ); err != nil {
330342 return err
331343 }
332- if name == "result" {
344+ if name == columnName {
333345 return nil
334346 }
335347 }
336348 if err := rows .Err (); err != nil {
337349 return err
338350 }
339351
340- _ , err = database .Exec (`ALTER TABLE execution_logs ADD COLUMN result TEXT` )
352+ _ , err = database .Exec (fmt . Sprintf ( `ALTER TABLE execution_logs ADD COLUMN %s TEXT` , columnName ) )
341353 return err
342354}
0 commit comments