webman框架【表添加新字段后,添加数据报错,需要restart才能添加数据】

问题描述

分析表需要灵活添加字段,添加字段后插入数据操作提示报错,找不到该字段。需要执行php start.php restart -d才能正常插入。各位大佬请问如何解决这个问题,老是重启不太好吧。

程序代码

            $insertData = [
                "game_id" => $game_info["id"],
                "event_id" => $eventId,
                "uid" => $uid,
                "createtime" => time(),
                "updatetime" => time(),
            ];
            foreach ($eventData as $key => $datum) {
                $insertData[$key] = $datum;
            }

            $res =  Db::name("event_log_{$game_info["id"]}")->insertGetId($insertData);

报错信息

fields not exists:[level_type]

截图报错信息里报错文件相关代码

操作系统及workerman/webman等框架组件具体版本

Workerman version:4.2.0
PHP version:8.3.12
topthink/think-orm v3.0.30

163 1 2
1个回答

walkor 打赏

think-orm缓存了数据库字段导致的,改字段后reload下就好了,执行 可以通过代码 posix_kill(posix_getppid(), SIGINT); 来触发reload

  • 2024-11-21

    大佬!
    那我就监控到数据库报错执行 posix_kill(posix_getppid(), SIGINT); 就可以了对吧

  • walkor 2024-11-21

    也可以

  • 2024-11-21

    好的,谢谢。我试一试

×
🔝