仅限mysqldump模式,模式更新没有删除
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了仅限mysqldump模式,模式更新没有删除,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1207字,纯文字阅读大概需要2分钟。
内容图文
![仅限mysqldump模式,模式更新没有删除](/upload/InfoBanner/zyjiaocheng/905/036b94561e4a46459bcac8e744a655ac.jpg)
我正在考虑使用git pre-commit钩子在提交更改之前导出MySQL数据库模式,以便其他开发人员可以使用git repo中的SQL脚本更新自己的数据库.
默认情况下,mysqldump(我使用–no-data)会在重建之前丢弃现有的表,这不是我所追求的.我想知道是否有人知道一种方法来执行mysqldump或类似的方法来描述带有SQL的db模式来更新表,如果它们存在而不是删除和重建.我意识到这可能是一个长镜头,但如果有人能指出我正确的方向,那将是伟大的.
解决方法:
MySQL如何知道要更新的内容?它无法知道其他人的数据库将处于什么状态,因此无法知道要应用的更新.此外,更新通常需要的不仅仅是更改架构;它们可能需要更改已存在的数据,或者可能需要将数据从旧架构移动到新架构.你永远不会得到一些会自动检测所有这些的东西.
正确的解决方案是编写迁移.每次更改数据库时,不是自己更改开发副本的模式,而是编写一个脚本以从先前的模式更新到新模式(通常是一个脚本,以降级回以前的模式,所以你可以做如果你需要回滚更新).该脚本可以执行更改架构,移动数据等所需的任何操作.
大多数现代Web框架(如Ruby on Rails)都支持迁移,以便更轻松地跟踪已运行的迁移.如果您没有使用支持迁移的框架,那么编写自己的脚本来应用迁移就不会太糟糕了.只需为每次迁移编号,或在其中添加日期,并在数据库中保留一个表,仅存储您所在的模式的当前版本.运行迁移脚本时,如果有任何比当前版本更新的迁移,请按顺序应用这些脚本,然后更新数据库中的数字,说明您所使用的版本.
内容总结
以上是互联网集市为您收集整理的仅限mysqldump模式,模式更新没有删除全部内容,希望文章能够帮你解决仅限mysqldump模式,模式更新没有删除所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。