分类: MySQL
-
本文记录了将 Shopify PHP 主题应用扩展部署至生产环境的过程。操作包括上传本地代码至阿里云服务器,在生产环境构建前后端,并解决因配置错误导致扩展推送至错误应用的问题。通过重新运行开发命令、使用环境变量拉取命令指定正确的生产应用,成功创建并发布了扩展版本,最终实现了在店铺主题编辑器中添加应用块及首页内容的更新。
-
本文记录了将Shopify PHP应用从开发环境部署至阿里云ECS生产环境的过程。主要操作包括在Shopify合作伙伴中心创建独立应用,将ECS环境中的PHP由7.4升级至8.1,配置域名SSL解析,并调整PHP配置以解决proc_open限制。部署过程中通过修改数据库引擎参数修复了迁移报错,更新Nginx配置和.env文件解决了权限与参数错误,最终构建前后端代码并重新安装应用,成功实现了页面正常加载。
-
在 PHP 7.4 和 MySQL 5.7 环境中,针对 JSON 类型字段插入 string(4) “null” 的问题进行了分析。程序原先仅使用 is_null() 判断,导致值为 “null” 的字符串被误判为合法 JSON 并写入数据库,从而引发 500 异常。经检查 SQL 日志和变量变化,确认 json_encode(null) 会返回字符串 ‘null’ 并被直接更新。最终结论是在执行 json_encode 前增加额外判断,仅当变量不为 NULL 时才进行编码,确保数据格式正确。
-
面对一张包含17万条记录的表,添加字段操作耗时180秒。通过允许新字段为NULL,耗时降至104秒。进一步确认并清理表中不再使用的数据,将记录量减少至3万余条后再次执行,最终总耗时缩短至87秒。该过程表明,调整字段属性与清理冗余数据能有效缩短表结构变更的执行时间。
-
针对MySQL 5.7中存储为数组格式的JSON类型字段,文章介绍了在Laravel 6中使用whereJsonContains方法进行查询的实现过程。通过参考Laravel官方文档,编写了查询代码并执行,最终打印出的查询结果符合预期,生成的SQL语句也能正确检索包含特定值的JSON数据。
-
在 Laravel 6 执行数据库迁移更新字段属性时,系统提示 Doctrine\DBAL\Exception 错误,声称不支持的 enum 类型。经排查,迁移文件中待更新的字段并非 enum 类型,但该表的其他字段使用了 enum。参考相关资料,使用 DB::statement 方法替代常规更改操作,执行迁移成功解决了此问题。
-
本文分析了主题编辑器页面保存后与实际页面不一致的问题,指出快速编辑时,后端保存接口从 Redis 读取数据的时机早于暂存接口写入数据的时机,导致数据未同步。最初尝试后端计数等待方案,但因存在数据丢失风险,最终参考 Shopify 实现,改为基于 hashValue 的比对机制。该方案在暂存和保存时分别计算与比对哈希值,仅在一致或用户确认忽略冲突时执行保存,从而有效解决了并发请求下的数据一致性问题。
-
本文探讨了在 Laravel 6 中重构 MySQL 字段类型 json 值的方法。针对现有代码中生成的 setting_migrations 数组结构,文章介绍了如何基于辅助函数 Arr 将该字段值调整并纳入到新的 extra 字段中。通过具体的代码调整,最终将原有的数组结构转换成了以 extra 为字段名的对象结构,实现了数据存储格式的优化。
