CreatorKit迁移失败:Github Actions部署Ubuntu服务器遇路径错误及超时
解决CreatorKit部署的两个核心问题
一、修复'/CreatorKit.ServiceModel/Types/MailingList.cs'路径找不到的错误
- 检查远程服务器的代码目录结构:确认Github Actions部署后的项目根目录是否和迁移命令预期一致。如果迁移命令用了绝对路径,要保证部署脚本把代码放到了对应路径;如果用相对路径,需确保执行迁移命令时的工作目录是项目根目录。
- 验证类库项目是否被正确部署:CreatorKit.ServiceModel是依赖类库,检查远程服务器的部署包中是否包含该项目的编译文件及所需源文件。确认Github Actions的publish步骤是否带上了所有依赖项目,比如使用
dotnet publish -c Release --self-contained false确保依赖被完整包含。 - 排查大小写敏感问题:Ubuntu系统对文件路径大小写敏感,本地开发环境(Windows/Mac)通常不敏感。检查代码中引用该文件的路径大小写是否和服务器上实际文件完全一致,比如
MailingList.cs是否被写成了mailinglist.cs,或者路径中的CreatorKit.ServiceModel是否存在拼写大小写错误。
二、解决Migration1001偶尔超时的问题
- 确保迁移时无其他进程占用数据库:Sqlite是文件型数据库,迁移前先停止服务器上的CreatorKit应用实例,避免数据库文件被锁导致迁移等待超时。可在ssh部署步骤中增加停止服务的命令,比如
systemctl stop creatorkit(如果用systemd管理服务)。 - 延长迁移命令超时时间:执行迁移时添加超时参数,比如
dotnet ef database update --timeout 300(设置为300秒),给Sqlite足够时间处理迁移操作。 - 优化服务器资源或迁移脚本:如果服务器配置较低(内存/CPU不足),可能导致迁移处理缓慢。可临时升级服务器配置,或查看Migration1001的脚本,若存在大量数据插入或索引创建操作,尝试拆分迁移步骤、分批处理数据。
- 延长Github Actions步骤超时时间:在release.yml的
deploy_via_ssh步骤中添加timeout-minutes: 10(根据实际需要调整时长),避免工作流因步骤超时提前终止迁移。
内容的提问来源于stack exchange,提问作者user2284583
相关产品推荐
相关产品推荐

