你用什么方法来控制你的数据库?我已经将所有数据库表作为单独的.sql脚本提交到我们的respository(mercurial)。这样,如果团队中的任何成员对employee表进行了更改,比如说,当我更新我的存储库时,我会立即知道哪个表被修改了。在

这种方法在:What are the best practices for database scripts under code control中描述过。

目前,我正在编写一个python脚本来执行数据库文件夹中的所有.sql文件,但是,由于外键约束而产生的依赖性问题确保了我们不能仅仅以任何顺序运行.sql文件。在

python脚本将按照.sql文件的执行顺序生成一个文件。它将按照.sql文件在表格顺序.txt文件。表只有在外键表被执行之后才能执行,例如:

在表格顺序.txt在

表3.sql

表1.sql

table7.sql等

我已经通过解析“show create table”mysql命令的结果,从代码中为每个表生成了依赖关系列表。依赖关系列表如下所示:tblstate: tblcountry //tblcountry.sql must be executed before tblstate.sql etc

tblemployee: tbldepartment, tblcountry

生成表格顺序.txt,我需要一个这样的算法:

^{pr2}$

正如您所想象的,这涉及到许多递归。我开始怀疑这是否值得努力?如果外面有什么工具?有什么工具(或算法)来生成执行单独的.sql表和视图的顺序列表,并考虑到依赖关系?对每个表/视图单独的.sql文件进行版本控制更好,还是将整个数据库的版本控制为单个.sql文件更好?我将感谢你的任何回应,因为这花了这么多天。谢谢。在

mysql数据库version版本控制_MySQL数据库版本控制相关推荐

  1. 查看mysql数据库文件命令_MySQL 数据库常用命令

    1.MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删除数据库,不提醒 show ...

  2. mysql数据库物理备份_MySQL数据库之xtrabackup物理备份(一)

    (1)备份开始时会开启一个后台检测进程,实时检测mysql redo(已提交的事务)的变化,一旦发现redo中有新日志写入,立刻将日志记入后台日志文件xtrabackup_log中, (2)复制Inn ...

  3. MySQL数据库的总结_MySQL数据库应用总结(三)—MySQL数据库的基本操作

    SQL语法预览: 查看所有数据库:[show databases; ] 创建数据库:[create database 数据库名;] 查看所创建的数据库:[show create database 数据 ...

  4. mysql 四大基础操作_mysql数据库的基本操作

    mysql数据库的基本操作 首先我们要把mysql装好 mkdir chen/ mount.cifs //192.168.100.23/LNMP chen/ [root@localhost ~]# y ...

  5. mysql 创建查询 删除_MYSQL数据库查询删除创建企业基本知识

    数据查询语言(DQL)从表中获取数据 select  + where (位置)  order by(排序)  group by  haveby 查询用户:select user,host,passwo ...

  6. mysql数据基本指令_mysql数据库常用命令(详细)

    mysql数据库常用命令(详细) *************************************************** windows下mysql的启动与停止 启动MYSQL服务 n ...

  7. mysql数据库简单指令_Mysql数据库一些简单命令

    2005年开发时曾经用过mysql数据库,时隔4年,需要把一个mysql的数据导入到一个新的mysql数据库中. 下载一个windows版本的mysql5.0.27版本,默认安装.(安装时需要设置数据 ...

  8. mysql创建数据库横杠_mysql数据库创建删除带横杠的数据库名

    mysql> create database d-d; ERROR 1064 (42000): You have an error in your SQL syntax; check the m ...

  9. mysql 表名 空格_Mysql数据库表名空格处理

    这几天在用同事建的数据库,因为设计文档中的部分表名有空格,导致建表的时候也有,从网上找了好久才找改名来正确处理的办法. 使用 ` (即数字键1左边那个键) mysql> alter table ...

  10. mysql数据库版本回退_mysql数据库

    数据库的简介 数据库 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据库中的数据按一定的数学模型组织.描述和存储,具有较小的冗余,较高的数据独立性和易扩展性, ...

最新文章

  1. 打包静默安装参数(nsis,msi,InstallShield,InnoSetup)[转]
  2. zabbix监控系统时间的问题
  3. ai驱动数据安全治理_人工智能驱动的Microsoft工具简介
  4. Mac 版 Android Studio 汉化教程 及汉化包
  5. MATLAB 创建不定长数组
  6. Vue.js 菜鸟教程 思维导图
  7. 智能建造-钢结构数字应用(附全文PPT)
  8. python 获取项目根目录
  9. 如何将pdf转换成word的3种免费方法
  10. 神经网络能用来干什么_秒懂神经网络---震惊!!!神经网络原来可以这么简单!...
  11. Ubuntu上无法登录网页版本微信的解决方案
  12. 热水bot协议_如何设计Bot协议
  13. Linux中常用命令
  14. 杀戮空间2游戏开服架设好后怎么查找自己服务器
  15. GPS坐标系转换(标准坐标系WGS84转GCJ-02火星坐标系)
  16. c程序设计语言 qsort,【程序设计基础_C语言】北理工的恶龙(附qsort范例)
  17. Python音乐可视化
  18. 搭建一个属于自己的博客平台
  19. 上海市一级计算机ps,上海市计算机一级考试ps部分练习题.docx
  20. 怎么用计算机弹出光年之外,明日之后光年之外简谱代码-明日之后光年之外怎么弹-明日之后光年之外钢琴曲谱分享_牛游戏网...

热门文章

  1. Testing BlogJet
  2. spss方差分析_【案例】SPSS统计分析:多因素方差分析
  3. 调用支付jsapi缺少参数:total_fee_小程序支付问题怎么解决?
  4. OpenCV cvLine
  5. Linux 命令简单介绍第一课笔记
  6. 服务器中有两个R文件夹,一台服务器中配置多个git sshkey
  7. 局域网mysql数据库访问
  8. java获取10位随机数_Java基础:JAVA中BitSet使用详解
  9. 二叉搜索时与双向链表python_剑指Offer(二十六) 二叉搜索树和双向链表
  10. linux嵌入式面试题合集,嵌入式linux面试题解析(一)——ARM部分二