Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >代码和数据跟踪/部署

代码和数据跟踪/部署
EN

Stack Overflow用户
提问于 2010-08-11 15:33:41
回答 5查看 368关注 0票数 10

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

我们现在刚刚在Scalr上部署了我们的第二个项目,我们已经意识到它有点混乱。

我们部署的方式:

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

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

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

问题是,每当我们试图建立一个新的开发版本时,试图找到正确的数据库版本是一件痛苦的事情(在任何时候,我们已经为一个项目建立了大约4个开发版本)。此外,一旦我们投入生产,git就开始变得迟钝,因为sql文件最终的总大小约为500mb。

问题是:

其他人是如何管理数据库的?我一直在寻找一种可以轻松地将数据从生产环境中转移到开发环境中,以及将数据从开发环境迁移到生产环境中的方法,但还没有发现任何问题。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-08-22 15:08:00

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

增量文件始终包含deploy节,但也可以包含undo节。当您提交增量文件而其他开发人员签出它时,他只需运行dbdeploy,所有新的更改都会自动应用到他的数据库中。

我在我的开放源码博客中使用了dbdeploy,这样您就可以看看增量文件是如何组织的:http://site.svn.dasprids.de/trunk/sql/deltas/

票数 4
EN

Stack Overflow用户

发布于 2010-08-19 10:43:48

我理解你的主要问题是其他人在将SQL数据从开发迁移到生产中的经验。

我使用的是Microsoft SQL Server,而不是我的SQL,所以我不确定您是否可以直接使用我的经验。然而,这种方式工作得非常好。

我使用Visual Studio2010旗舰版来比较两个数据库中的数据。Vinsual Studio Team Edition 2008 (或Database edition)中也存在相同的功能。你可以阅读http://msdn.microsoft.com/en-us/library/dd193261.aspx来理解它是如何工作的。您可以比较两个数据库(dev和prod),并生成用于修改数据的SQL脚本。您可以轻松地从比较中排除一些表或列。您还可以检查结果,并从脚本的生成中排除某些条目。因此,人们可以轻松而灵活地生成脚本,这些脚本可以用于部署数据库中的更改。您可以从结构中分别比较两个数据库的数据(模式比较)。因此,您可以使用prod中的数据刷新dev中的数据,或者生成将prod数据库修改为最新版本的dev数据库的脚本。我建议你看看这个特性和http://www.red-gate.com/的一些产品(比如http://www.red-gate.com/products/SQL_Compare/index.htm)。

票数 2
EN

Stack Overflow用户

发布于 2010-08-11 15:46:46

查看capistrano。它是ruby社区用来部署到不同环境的工具,我发现它真的很有用。

此外,如果您的部署开始受阻,请尝试使用twitter构建的名为Murder的工具。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3460085

复制
相关文章
Google Maps JSAPI V3
    1. 不再需要API Key 2. 指定sensor传感器参数,检测到用户当前位置 3. 针对移动设备(IPhone设备和Android系统)的开发 4. 支持本地化 5. 版本管理
py3study
2020/01/08
1.1K0
Qt状态更改事件
可以捕获的状态有: QEvent::ToolBarChange (在macOS上工具栏按钮被切换) QEvent::ActivationChange (顶级窗口激活状态已更改) QEvent::EnabledChange (窗口的启用状态已更改) QEvent::FontChange (窗口的字体已更改) QEvent::StyleChange (窗口的样式已更改) QEvent::PaletteChange (窗口的调色板已更改) QEvent::WindowTitleChange (窗口的标题已更改) QEvent::IconTextChange (窗口的图标文本已更改(不赞成使用)) QEvent::ModifiedChange (窗口的修改状态已更改) QEvent::MouseTrackingChange (鼠标跟踪状态已更改) QEvent::ParentChange (窗口的父类已更改) QEvent::WindowStateChange (窗口的状态"最小化、最大化或全屏"已更改) QEvent::LanguageChange (应用程序翻译已更改) QEvent::LocaleChange (系统区域设置已更改) QEvent::LayoutDirectionChange (默认应用程序布局方向已更改) QEvent::ReadOnlyChange (窗口的只读模式已更改)
Qt君
2023/03/17
1.1K0
Qt状态更改事件
Ubuntu“无法获得锁”解决方案(E: 无法获得锁 /var/cache/apt/archive)
[scode type="yellow"]Ubuntu “无法获得锁”解决方案(E: 无法获得锁 /var/cache/apt/archive)[/scode]
乐心湖
2020/07/31
1.8K0
SQL server无法更改表
在设计器中,选择表设计器和数据库设计器,将阻止保存要求重新创建表的更改选项取消勾选 再次编辑表中内容时就不会再有错误弹窗。
magize
2023/07/11
3490
SQL server无法更改表
maps
通过向 make 函数传入键和值的类型,可以创建 map。make(map[type of key]type of value) 是创建 map 的语法。
酷走天涯
2019/06/11
5620
E: 无法获得锁 /var/lib/dpkg/lock
Ubuntu下很常见的问题,标记一下。 u1@node:~# sudo apt-get install -y mysql-client mysql-server E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它? u1@node:~# sudo apt-get install -y mysql-client mysql-server E: 无法获得锁 /var/lib/dpkg/l
程裕强
2022/05/06
4480
获得焦点与失去焦点事件
获得焦点事件(onfocus)是当某个元素获得焦点时触发事件处理程序。
全栈程序员站长
2022/09/07
6.1K0
[踩坑]iconfont Symbol svg引入无法更改颜色
最近公司组织架构调整(反正每次组织架构调整,领导就会下场。有一个idea或者有重构一下,先定一个月底上),被拉取一个项目组做新项目。这边图标现状:有些项目是font-face方式,有些用的阿里图标库,最近又在用腾讯图标库,有些甚至直接切图。
玖柒的小窝
2021/11/16
3.8K0
[踩坑]iconfont Symbol svg引入无法更改颜色
Grafana、Loki 和 Tempo 更改开源协议为AGPL v3
Grafana、Grafana Loki 和 Grafana Tempo 从 Apache License 2.0 转为 AGPL v3 许可证。而相关插件、代理与部分特定库仍将保持 Apache 许可状态。
深度学习与Python
2021/05/07
2.8K0
Grafana、Loki 和 Tempo 更改开源协议为AGPL v3
Go 语言之 Maps 详解:创建、遍历、操作和注意事项
Maps用于以键值对的形式存储数据值。Maps中的每个元素都是一个键值对。Maps是一个无序且可更改的集合,不允许重复。Maps的长度是其元素的数量。您可以使用 len() 函数来查找长度。Maps的默认值是 nil。Maps保存对底层哈希表的引用。
小万哥
2023/09/09
2920
Go 语言之 Maps 详解:创建、遍历、操作和注意事项
POH和POV事件获得屏幕字段的值
在SCREEN显示之前,系统会自动将程序变量值存放到屏幕字段中:在PAI事件中,系统会自动将屏幕字段的值更新到相应的程序变量中。 在SCREEN LOGIC中我们还有POH和POV事件,所以需要调用DYNP_VALUES_READ函数来读取屏幕字段值。
秋白
2022/06/23
1.2K0
maps in Go 1.21
Go 1.21中新增的 maps包中定义了一系列非常有用的函数,用于处理任意类型的 map。
孟斯特
2023/10/19
1510
maps in Go 1.21
Kubernetes Config Maps
下一篇: Kubernetes Secrets 密钥管理→
jwangkun
2021/12/23
5470
Go-Maps
语法汇总 前面介绍的array、slice都是顺序性列表,本节的map则是无序的。 这个map和C/C++/Java的map一样,在Python中称为字典/dictionary。但Golang中map的用法更符合脚本语言的特点,和Python很像。 涉及的主要语法点: var the_map map[string]int the_map := make(map[string]int) the_map := map[string]int {key:value, ...} value, ok := the_ma
李海彬
2018/03/27
6980
Android-无法获得Service内容-Service通信
当程序通过startService()和stopService()启动、关闭Service时Service与访问者不存在太多关联,因此service与用户之间无法进行通信、交换数据。
圆号本昊
2021/09/24
8030
Android-无法获得Service内容-Service通信
Go-Maps
语法汇总 前面介绍的array、slice都是顺序性列表,本节的map则是无序的。 这个map和C/C++/Java的map一样,在Python中称为字典/dictionary。但Golang中map的用法更符合脚本语言的特点,和Python很像。 涉及的主要语法点: var the_map map[string]int the_map := make(map[string]int) the_map := map[string]int {key:value, ...} value, ok := the_ma
李海彬
2018/03/23
7440
原生js获得八种方式,事件操作
08.17自我总结 关于js 一.原生js获得八种方式 通过ID获取(getElementById) 通过name属性(getElementsByName) 通过标签名(getElementsByTagName) 通过类名(getElementsByClassName) 通过选择器获取一个元素(querySelector) 通过选择器获取一组元素(querySelectorAll) 获取html的方法(document.documentElement) document.documentElement是专门
小小咸鱼YwY
2019/09/11
3.4K0
小案例:结果缓存无法使用,RESULT_CACHE_MAX_SIZE值无法更改的问题
最近遇到了一个 RESULT_CACHE_MAX_SIZE 参数值无法更改的问题。
SQLplusDB
2022/08/19
2K0
高德地图 HELLO,AMAP!
今天实在是有点慌啊,慌在不知道看什么啊,翻了半天,还是想看个新东西,本来看数据仓库的,结合买的阿里云也能用起来,但看到技术的时候太偏阿里技术了,要不下午再说吧。
疯狂的KK
2019/12/03
1.9K0
解决Mac无法成功安装pygame,无法更改窗口背景颜色,不显示飞船图像的问题
在学习《python编程 从入门到实践》这本书的过程中,按照书上的操作步骤,当我们在终端中使用pip3 install --user hg+http://bitbucket.org/pygame/pygame 命令无法安装pygame,或者通过pip3 install pygame 命令成功安装后,在编写《外星人入侵》代码中调用 import pygame 模块运行程序,会发现python应用图标一直在程序坞中跳动或者不动(如果系统偏好设置里没有开启打开程序时跳动则不动),虽然此时可以通过卸载python(很大一部分原因是因为你的python是官网下载安装的), 然后通过homebrew的方法将python跟pygame必须完全用终端安装的方法解决(命令书上有,但是你将可能遇到下面的问题)。
alithefox
2020/03/27
4.4K0

相似问题

原木运输如何跟踪

10

原木运输如何保持跟踪?

10

原木运输保留问题

10

暂时停止原木运输

10

对原木运输的怀疑

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档