SQLite迁移MySQL数据库情况记录

970 words
  • 从开学第三周才开始着手做这个项目里数据库迁移的工作。
  • 其实是3月初校赛结束拿下一等奖之后要参加市赛,所以需要着手做一些更加创新性更加“高大上”的功能,并改进其运行性能。从SQLite迁移为MySQL的举动,就是出于答辩时评委老师提到的:应当优化多并发线程处理能力的考虑。
  • 上一棒在改的是我组长。他花了一两周时间在顶部索引栏加了个名为学情分析的模块,并为其添加了一个可以为不同类型的代码题目进行自动的标签分类的AI工具。
  • 我看过app.py的代码之后,大概明白,他加的这个功能是为学生用户的知识点掌握情况绘制一幅较为精确的画像用的。
  • 此外,他部署这个模块要用到的AI到本地时,在docker运行环境的总命令文件.yml里面写的CPU占核数量是16(他的华硕天选游戏本CPU是24核的,所以占用16核也还扛得动),但是我的电脑总共才16核,要是这个地方不改,我怕我电脑直接寄了,到时候没设备记笔记、看网课就彻底完了,所以我没敢保持原样,在代码里改了6核。
  • 问题就是,我改了6核之后,想在迁移数据库之前试搭一次我本机的docker环境。但是结果是:我在它搭建期间改了一晚上代码,到我准备睡了的时候,它都还没搭建完成。嗯对,其实他说过改6核速度肯定会变慢,但是具体会慢多少,大概就需要我自己后续改完了再实验了(因为如果这么慢的话,我大概只有改完全部的东西才会有耐心等它部署完成,不会继续在改代码中途尝试搭建了……)。

  • 这边顺便码一下一些需要改动的方面。我按顺序来,做得会相对有条理一些。
  • 1、在requirements.txt中新增依赖:pymysql==1.1.2
  • 2、在app.py中,将本来是用于引入sqlite3的代码改为引入pymysql
  • 3、在app.py开头,新增自定义函数get_db_connection(),用于新数据库连接。这一点中,有一些东西需要与组内成员继续商量,因为这个函数的定义中包括MySQL数据库地址、数据库用户的名称、密码、数据库名等。目前我只跟组长确认过数据库名(即仍然沿用原名称code_judge_platform),但其他的也需要后续沟通
  • 4、在app.py中,将每一个路由下的连接数据库sqlite3的函数,改为我新增的这个自定义函数
  • 5、全局:占位符由?改为%s(是SQLite和MySQL的格式差异)