在调业务逻辑,不成想再次落入mysql编码相关的怪圈。运行data_frame.to_sql(xxx,if_exists='replace')的时候,遇到invalid string value报错,一看就是头大的编码问题要登场了。
然而无论怎么动collation和charset都没有起到作用。而且发现那个用php artisan migrate:refresh xxx.php 生成的表格,自己变了collation 从 utf8mb4 自己搞成了latin,一顿调试之后,才发现惊天大乌龙是 if_exists='replace',这个本来人家给的就是append,我非要觉得和主键有关,要用覆盖的逻辑,结果险些吐血。
最后的最后,解决手法是,自己用mysql命令行做了个表格放弃了php artisan工具,然后确保好if_exists='append',怪事暂时告一段落。
明明重要的是写业务逻辑,结果又是在技术细节上,花了巨多时间。