【问题标题】:how to define an architecture for a database deployment如何为数据库部署定义架构
【发布时间】:2015-03-19 15:39:31
【问题描述】:

Hy.

我正在构建一个软件,然后我将源代码部署到 3 个不同的 mysql 数据库(托管在 3 个不同的地方),我的问题是......有没有办法自动化我在其中一个数据库中所做的更改其他的???

有什么工具我可以使用,这样我就不必手动更改所有数据库???

【问题讨论】:

  • 我担心这个问题跑题了
  • 你问的是schema migration吗?
  • 嗯,不准确,我问的是持续部署,当您在开发环境中开发一些时,您在开发数据库上工作不是吗?因此,当您对其进行测试时,您可以在带有测试数据库的测试环境中进行测试,所以我需要做的是反映开发数据库上的最新更改而不是测试数据库。

标签: mysql database architecture


【解决方案1】:

如果您想要自动执行作业,您必须自己创建脚本工具并根据需要执行。但我现在看到的是你需要某种方式Database Versioning

一开始很难理解,但很容易理解。版本控制过程是:

  1. 基线:这是您在一个脚本中的整个数据库表和预定义记录。通常记录在主版本,如 1.0.0.sql 或 2.0.0.sql。基线只执行一次。
  2. 更新:这是在每个 sql 脚本中分隔的表的“补丁”。
  3. 视图、函数和过程:您的每个视图、函数和过程都在单独的 sql 文件中。
  4. schema_change_log:该表记录数据库中执行的基线版本和更新补丁版本

发布步骤:

  1. 查看 schema_change_log 中的最新版本
  2. 获取版本高于最新版本的更新
  3. 执行更新脚本
  4. 删除所有视图、函数和过程
  5. 重新应用所有视图、函数和过程

【讨论】:

    【解决方案2】:

    我建议为此使用MySQL Workbench,这样您就可以对模型进行任何更改,然后通过数据库菜单您可以将更改与您的数据库同步。

    【讨论】:

    • 当涉及到架构或完整数据库时,这是一个很好的解决方案,但当涉及到数据库表上的某些数据或某些列时,就不是那么好了
    猜你喜欢
    • 2014-08-20
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 2011-05-08
    • 2021-06-15
    • 1970-01-01
    相关资源
    最近更新 更多