数据库字段变更功能如何实现

yalan 2015-07-27 04:19:43
我们用的OA系统(PHP的)升级,新版数据库字段有所变更(相对旧版有新增的也有减少的),我原来都是手动一个个字段的修改,每次升级都要累死本宝宝了。

请问用PHP如何自动比对新旧版数据库的表和字段呢?以新版的表结构为参照比对在用的数据库(即旧版),旧版有的新版没有的表和字段就drop,旧版没有新版有的create,这样处理完后在用的数据库结构就相当于升级到了新版。

绞尽脑汁唯一想到的就是做两个数组来比较,但还是觉得很笨,期待各位前辈有更好的方法~~~酷夏三伏正午十二点赤身裸体跪在铁板上致谢~~~~
...全文
402 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yalan 2016-08-07
  • 打赏
  • 举报
回复
谢谢各位提供的思路~~~前阵子账号被盗了,汗一个~~~现在找回密码回来结贴给分哈
傲雪星枫 2015-08-16
  • 打赏
  • 举报
回复
首先创建表是使用程序去创建,而不是手动创建。 当修改表结构时,程序中判断,如果字段是一样的,则保留,不同的则修改。
yalan 2015-08-16
  • 打赏
  • 举报
回复
各位大大有没有好的解决方案啊?分不够我就继续追加,求个完善的方案
码无边 2015-08-06
  • 打赏
  • 举报
回复
如果仅仅是对比表的字段名按照转化数组处理,如果变更的是类型 长度 备注啥,你怎么解决。
yalan 2015-08-06
  • 打赏
  • 举报
回复
没用过框架~~~ 现在的一点思路是:将新版的数据库结构导出为二维数组,保存到文件,然后升级旧版的时候用同样的方法将旧的数据库结构狗造成二维数组,然后对比新旧数据库的数组~~~~~ 不知道我的这个想法是否安全可行,如果可行的话,如何方便的将旧的数据结构变更成新的结构(应该是将旧的二维数组改成新的二维数组吧?),想了半天也没想到如何把旧数据库字段结构安全的改成新的数据结构
yalan 2015-08-06
  • 打赏
  • 举报
回复
引用 5 楼 zy205817 的回复:
如果仅仅是对比表的字段名按照转化数组处理,如果变更的是类型 长度 备注啥,你怎么解决。
导出的表结构是二维数组,第一维是表名,第二维是表的字段名及其属性,如果涉及到变更就alter table,所以我觉得理论是能够解决的
mu_rain 2015-08-05
  • 打赏
  • 举报
回复
如果楼主用了框架,有些框架会提供 db migration 这样可以较好的管理数据库的变更。
黄袍披身 2015-08-01
  • 打赏
  • 举报
回复
写个自动的脚本 每次导出最新的表结构自动做校对 发现修改过的表内容进行改造.
xuzuning 2015-07-27
  • 打赏
  • 举报
回复
吃烤肉喽 DESCRIBE tbl_name 可得到表 tbl_name 的字段信息 可编程 新旧对比后用 ALTER COLUMN 指令进行处理 一般 OA 都使用 数据字典 进行管理,看来你不是这样做的 建议你花点时间改进一下

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧