本篇文章来介绍用AI进行chatBI系统的数据库设计及初始化。
数据库设计文档生成
1、根据之前生成的项目系统技术架构文档生成数据库设计文档
2、由于文档内容太多导致中断,输入“继续”,完成文档生成。
3、因为中断又继续,导致生成的文档标题结构有点混乱,需要让AI进行调整
在生成内容较多的文档时,最好先规划步骤,按步骤逐步生成文档,才不会因为内容输出太长,导致中断,中断后又继续,容易导致生成的内容顺序混乱,像我这个数据库设计文档就是这种情况。
5、尽管我的系统技术架构文档明确指明数据库选型是PostgreSQL,在生成数据库设计文档时也引用了“ChatBI系统技术架构文档.md”,但结果数据库选型却是MySQL 8.0+(看上面截图),所以文档需要进行调整
修改了关于数据库选型的描述以及一些表字段的类型需要符合PostgreSQL的语法。
在生成数据库设计文档时,最好给AI明确指明数据库选型,避免它又默认使用MySQL来设计数据库
数据库表结构DDL脚本生成
数据库初始化
PostgreSQL database URL的格式:postgresql://user:password@host:port/dbname
2、想用PostgreSQL MCP 进行数据库表的初始化(实际上PostgreSQL MCP 只有查询权限,没有修改和写的权限)。
在没使用PostgreSQL MCP之前一直以为这个MCP可以当数据库管理工具一样使用,可以修改数据库表结构、读写数据库表等操作,虽然上面截图提示它只是支持query操作,但不死心,以为是配置权限的问题,问了AI如下问题:
我也是根据它提示的配置,进行了MCP的配置修改,修改了好几个版本的配置,但其实是不生效的
所以放弃了用MCP初始化数据库表结构的想法,乖乖使用Navicat 导入sql脚本,进行数据库初始化,最终的数据库表如下:
3、用PostgreSQL MCP 查询一下数据库有几个表
实践心得
1、在用AI生成数据库设计文档时,记得要明确指明用表格呈现数据库表结构的描述,要不然它会直接给生成一堆ddl脚本,记住一句话“你想要什么,请描述清楚”;
2、在生成数据库设计文档时,还是得明确说明主数据库用的是PostgreSQL,要不然AI默认给你选择MYSQL,导致后面还得调整一次;
3、目前Trae并没有长期记忆的功能,所以你后面的AI对话,并不是基于之前所有对话内容为基础的,它的上下文(Context)有限,比较靠前的对话内容AI可能已经不记得了,所以最佳方式是记录文档,并让AI时不时的阅读了解一下整个项目的进展情况。
4、AI并不是100%可靠的,它其实是基于概率来进行推理的,所以对AI给出的任何建议都要持审慎怀疑的态度,比如我问它如何配置PostgreSQL MCP 使它有修改数据库的权限,AI并没有去查阅官网,查找配置信息,而是直接就给出配置样例,在这一点上,AI就是一本正经的在胡说。
5、因为PostgreSQL MCP 只提供query 工具,并没有修改和写的权限,我又去找了几个数据库工具的MCP,要么配置连接不成功,要么要注册账号,并申请配置token才能使用,一个本地开发的小工具,为啥要注册账号,还要配置token,直接pass掉了。
用AI编程,没法用AI对话方式进行数据库初始化实在有点郁闷,突然脑袋闪过一个想法:为啥不能自己搞个PostgreSQL MCP server呢,让它有修改数据库,有读写数据库表的权限不就好了,哈哈!
在AI编程年代,有想法就要马上行动,这才是当前正确的思维方式,等我去实践一下,再来汇报用AI编写第一个MCP server 的实践结果
如果本文对你有帮助,不妨点个免费的赞和收藏备用。
👉 添加我的微信(gallop_liu),备注“加群”,交流并分享个人的一些资料。
程序猿的保命茶:
胎菊8颗+玫瑰6颗+枸杞少许
夏天胎菊多一些,枸杞少一些,冬天则相反