gpt4 book ai didi

deployment - 代码和数据跟踪/部署

转载 作者:行者123 更新时间:2023-12-01 19:39:15 24 4
gpt4 key购买 nike

很长一段时间以来,我们一直将数据保存在项目的存储库中。我们只是将所有内容保存在 data/sql 下,每个表都有自己的 create_tablename.sql 和 data_tablename.sql 文件。

我们现在刚刚将第二个项目部署到 Scalr 上,我们意识到它有点困惑。

我们的部署方式:

我们有一个“打包”脚本集合,它将项目分为 3 个文件(数据、代码、静态文件),然后将其存储在 S3 上的 3 个独立存储桶中。

每当一个角色启动时,它都会下载一个文件(取决于角色:数据、nfs 或 web),然后“解包”脚本为每个角色设置所有内容,将数据加载到 mysql 中,设置nfs等

我们这样做是因为我们不想保存服务器镜像,我们总是从普通实例开始,使用各种内部构建的脚本从头开始安装所有内容。启动时间不是问题(我们在 9 分钟内就可以使用服务器场)。

问题是,每当我们尝试设置新的开发版本时,尝试找到正确的数据库版本都是一件痛苦的事情(在任何时间点,我们的项目都有大约 4 个开发版本)。此外,一旦我们投入生产,git 就开始变得令人窒息,因为 sql 文件最终总计约为 500mb。

问题是:

其他人如何管理数据库?我一直在寻找一些东西,可以轻松地将数据从生产中取出到开发中,并将数据从开发中迁移到生产中,但没有偶然发现任何东西。

最佳答案

您应该认真看看 dbdeploy (dbdeploy.com)。它被移植到多种语言,主要是 Java 和 PHP。它集成在 Ant 和 Phing 等构建工具中,并允许轻松共享所谓的增量文件。

增量文件始终包含部署部分,但也可以包含撤消部分。当您提交增量文件并且另一位开发人员检查它时,他只需运行 dbdeploy 即可,所有新更改都会自动应用到他的数据库。

我在我的开源博客中使用 dbdeploy,因此您可以查看增量文件的组织方式:http://site.svn.dasprids.de/trunk/sql/deltas/

关于deployment - 代码和数据跟踪/部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3460085/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com