【发布时间】:2011-03-28 11:14:01
【问题描述】:
很长一段时间以来,我们一直将数据保存在项目的存储库中。我们只是把所有的东西都放在 data/sql 下,每个表都有自己的 create_tablename.sql 和 data_tablename.sql 文件。
我们现在刚刚将第二个项目部署到 Scalr 上,我们意识到它有点混乱。
我们的部署方式:
我们有一个“打包”脚本集合,将项目拆分为 3 个档案(数据、代码、静态文件),然后我们将这些档案存储在 S3 上的 3 个单独的存储桶中。
每当一个角色启动时,它会下载一个文件(取决于角色:数据、nfs 或 web),然后“解包”脚本为每个角色设置所有内容,将数据加载到 mysql,设置nfs等
我们这样做是因为我们不想保存服务器图像,我们总是从 vanilla 实例开始,我们使用各种内部构建的脚本从头开始安装所有东西。启动时间不是问题(我们在 9 分钟内就可以使用农场)。
问题在于,每当我们尝试设置新的开发版本(在任何时间点,一个项目大约有 4 个开发版本)时,都很难找到正确的数据库版本。此外,一旦我们投入生产,git 就会开始窒息,因为 sql 文件最终总计大约 500mb。
问题是:
其他人如何管理数据库?我一直在寻找可以轻松将数据从生产环境转移到开发环境以及将数据从开发环境迁移到生产环境的方法,但没有发现任何问题。
【问题讨论】:
-
为什么要将数据从 dev 迁移到 prod?
-
@sheepsimulator - 许多框架(例如 Magento、ATG 等)将配置数据存储在需要移植以复制开发/登台环境的数据库中
标签: deployment cloud database-management dev-to-production scalr