暂存数据库困境

2023-11-26

假设有3个数据库

  • 生产
  • Staging
  • Dev

据我所知,临时数据库需要与生产数据库同步 但,

当我们发展的时候,我们可以为所欲为Dev数据库并更改架构。 现在是先有鸡还是先有蛋的问题。

要在分期中进行测试,Staging数据库模式需要根据开发数据库中的更改进行更改。但临时数据库需要与生产同步。

你们如何解决这个问题?


您需要将所有更改写入开发数据库作为按特定顺序运行的 SQL 迁移脚本。不要更改数据库结构,除非是在脚本中。不要更新、插入或删除任何行,除非它位于脚本中。

理想情况下,有一种方法可以跟踪针对您找到的任何版本的数据库运行了哪些脚本。

然后您可以按如下方式更新阶段。

  • 转储生产数据库
  • 使用生产转储填充阶段数据库
  • 分阶段运行迁移
  • 检查迁移是否有效(单元测试、手动检查)

一旦一切正常...

  • 使用 mysqldump 命令转储 prod 数据库(因为它可能已更改)在服务器上保留备份
  • 在产品上运行迁移
  • 测试迁移已在产品上运行
  • 喝啤酒(一边看错误日志)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

暂存数据库困境 的相关文章

  • Android spinner 将多列(连接)Sqlite 数据库加载到表中

    我正在学习如何创建一个从 SQLite 加载下拉列表的微调器 我有一个由旋转器和表格组成的用户界面 如果用户单击微调器 表的内容将根据微调器上选定的 ID 根据数据库加载 如果未选择名称 它将加载表中的所有内容 但是我找不到如何根据微调器上
  • Doctrine 在 Active Record 之上添加了什么 - CodeIgniter?

    我真的很喜欢 CodeIgniter Active Record 它非常好地允许我进行所有需要的数据库查询 但我也一直在阅读有关 ORM 的内容 例如 Doctrine 当我阅读 Doctrine 的文档时 它的使用似乎不像 Active
  • iPhone只能使用SQLite数据库吗?

    iPhone 可以使用 SQLite 之外的其他数据库吗 比如 MySQL iPhone 只能直接在设备上使用 SQLite 作为数据库 这意味着 iPhone 内部没有 MySQL 服务器 但是您可以并且可以自由地拥有 您自己的 MySQ
  • 我需要进行哪些更改才能让我的表在 AppEngine 的 BigTable 上运行?

    假设我有一个预订数据库 其中包括users user id fname lname 和他们的tickets ticket id user id flight no 以及相关的flights flight no airline departu
  • 具有重复值的 Sqlite 列

    就说专栏吧aSQLite 数据库的非常重复 始终有相同的 4 个值 其他值可能稍后出现 但不同值的数量将少于 1000 个 VALUES hello world it s a shame to store this str many tim
  • 用 PDO 和准备好的语句替换 mysql_* 函数

    我总是做简单的连接mysql connect mysql pconnect db mysql pconnect host user pass if db echo strong Error strong Could not connect
  • 我将 MySQL 列设置为“NOT NULL”,但我仍然可以插入空值

    在 MySQL 中 我有一个 Column1 为 NOT NULL 的表 create table myTable Column1 int not null Column2 int not null 我仍然可以像这样插入一个空值 INSER
  • CodeIgniter 数据库连接未关闭

    我在 CodeIgniter 中建立了一个社交社区网站 该网站现在获得了相当多的流量 托管公司已经开始抱怨并说数据库正在接收空连接以及未关闭的连接 我不完全确定空查询是什么或者最终如何发出空查询 有什么想法吗 我添加了额外的代码以在代码结束
  • 将 SQL Server 数据库合并为 1

    我需要将 20 个具有相同结构的数据库合并为 1 个数据库 我看到了这个帖子 以最小的延迟将来自许多不同数据库的数据整合到一个数据库中 https stackoverflow com questions 2537986 consolidat
  • 长 IN 子句是代码异味吗?

    简单的问题 想知道长 IN 子句是否有代码味道 我真的不知道如何证明它的合理性 除了我认为的味道之外 我无法解释为什么它有味道 select name code capital population flower bird from us
  • 播种方法是插入具有 NULL 值的附加实体

    我突然出现这种奇怪的行为 我在版本控制 tfs 中比较了我的文件 以确保我没有更改任何内容 也没有发现任何不同 我正在用一些元数据播种我的数据库 我发现它有一个我以前从未见过的非常奇怪的行为 我正在插入一个实体 产品 它会插入该实体2 ti
  • 使用 SqlBulkCopy 和 Azure 并行批量插入

    我在云上有一个带有 sql azure 数据库的 azure 应用程序 我有一个辅助角色 需要对文件 最多约 3000 万行 进行解析 处理 因此我无法直接使用 BCP 或 SSIS 我目前正在使用 SqlBulkCopy 但这似乎太慢了
  • Azure:用户登录失败

    我做了什么 我在 Azure 中添加了资源组 添加了带有先前资源组的 Web 服务 添加了带有先前资源组的 SQL Server 数据库 从此数据库检索生成的连接字符串并在此处提供用户名和密码 将此连接字符串添加到Web服务中的应用程序设置
  • 什么时候数据库被称为嵌入式数据库?

    术语 嵌入式数据库 与 数据库 具有不同的含义吗 我见过的嵌入式数据库有两种定义 嵌入式数据库就像专门为 嵌入式 空间 移动设备等 设计的数据库系统一样 这意味着它们在紧张的环境中 内存 CPU 方面 可以合理地执行 嵌入式数据库就像不需要
  • cdb - 大文件(数百 GB)的常量键值存储

    我需要一个类似于 cdb 常量数据库 的工具 它允许我在索引文件中存储大量数据 数百 GB 范围内 CDB 是理想的候选者 但它有 2 GB 的文件大小限制 因此不适合 我正在寻找的功能是支持二进制键和值的持久键值存储 创建后数据库是只读的
  • 数百个别名/同义词与数据库表的完全限定名称

    考虑到多个模式中的数百个数据库表 在创建存储过程和视图时 您是否建议使用别名 同义词或完全限定名称 给定一些 schema table 像这样 Orders OrderHeader Production LineThroughput Sal
  • 时间序列数据的键值存储?

    我一直在使用 SQL Server 存储数十万个对象的历史时间序列数据 每天观察大约 100 次 我发现查询 给我时间 t1 和时间 t2 之间对象 XYZ 的所有值 太慢 对于我的需要 慢超过一秒 我按时间戳和对象 ID 建立索引 我考虑
  • 什么时候不应该使用 Cassandra? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 相关话题已经有很多讨论了卡桑德拉 http cassandra apache org lately Twitter Digg Facebook
  • 使用 Greasemonkey 时存储数据

    使用 Greasemonkey 时是否有存储大量数据的好方法GM setValue只是没有削减它 那么这里有一些选项 设置服务器来保存数据 对于用户 并使用 xhr 来 创建 编辑 删除数据 谷歌应用程序 发动机 GAE http code
  • 对于数据库来说,选择正确的数据类型会影响性能吗?

    如果是这样 为什么 我的意思是 tinyint 的搜索速度比 int 快吗 如果是这样 性能上的实际差异是什么 是的 根据数据类型 它确实有所不同 int vs tinyint不会在速度上产生明显的差异 但会在数据大小上产生差异 假设tin

随机推荐

  • 检查标记是否在视图中(地图)-mapbox

    I want to check if marker is on mapview or out of the map I am putting marker of the map and not able to check if it on
  • 如何修改粘贴的数据? jQuery

    我关注了这个问题JavaScript 在粘贴事件上获取剪贴板数据 跨浏览器 从剪贴板获取粘贴的数据 但我使用了jquery 现在我得到了数据 我删除了所有 html 标签 但我不知道怎么粘贴 element is a contentedit
  • 在预定的heroku dyno中访问heroku toolbelt命令?

    我想在预定的heroku任务中调用heroku postgres备份 恢复命令 但是heroku工具带在bash提示符下不可用 所以我无法调用heroku命令 heroku run bash app myapp Running bash a
  • 允许特殊字符 SQL Server 2008

    我使用的是 SQL Server 2008 Express 版本 其排序规则设置设置为默认值 我希望在数据库中存储特殊字符 如 但它会将它们转换为普通字符 如 A 如何阻止 SQL Server 这样做 确保您的列使用类型 nvarchar
  • 在 flutter 中获取设备 IMEI

    我怎样才能获得设备IMEI颤动中 我正在尝试使用以下插件获取唯一标识符 uuid type 0 7 0 dev uuid 1 0 3 unique identifier 0 0 3 flutter udid 0 0 3 他们都获得 ID 但
  • Android imageview 显示绿色图像

    这是原始图像 这是使用 ImageView 渲染的图像 然而 有时当图像在轮播中时 滑回图像可能会导致图像正确渲染 这更奇怪 在 LG G3 Android 5 1 和 Genymotion Android 4 4 4 上均观察到此行为 我
  • 在 IE9+ 上显示 base64 pdf 的解决方法

    我想将 PDF 转换为 base64 并在浏览器上显示 问题是 以下代码适用于 Firefox 和 Chrome For IE usi
  • 如何使用 Axios 从表单发布文件

    使用原始 HTML 当我使用以下命令将文件发布到 Flask 服务器时 我可以从 Flask 请求全局访问文件
  • 在 JComboBox 中显示图像

    我需要在 JComboBox 中显示图像 只需向模型添加一个图标而不是字符串 import java awt import javax swing public class ComboBoxIcon extends JFrame JComb
  • 如何在Android中使用TextWatcher类?

    谁能告诉我如何屏蔽子串 in EditText或如何改变EditText 密码类型的子字符串输入 or replace由另一个特点像这样 123xxxxxxxxx3455 String contents et1 getText toStri
  • 安全地将 JSON 字符串转换为对象

    给定一个 JSON 数据字符串 如何安全地将该字符串转换为 JavaScript 对象 显然 我可以通过以下方式不安全地做到这一点 var obj eval json 但这让我很容易受到包含其他代码的 JSON 字符串的影响 简单地评估这些
  • IDEA 的 CheckStyle 插件 - java 方式的警告呈现和自动修复?

    是否可以使其显示 java spellchecker 风格的警告列表 而不是带有行号的旧式错误列表 它可以自动修复 附近缺少空格等问题吗 也许我需要一个不同的插件 那么哪个呢 Try QAPlug 检查样式插件 然后进入 分析 分析代码 不
  • 业务验证逻辑代码异味

    考虑以下代码 partial class OurBusinessObject partial void OnOurPropertyChanged if ValidateOurProperty this OurProperty false t
  • C# 语音识别

    我现在正在制作一个智能家居控制系统 我有一个小问题 我正在考虑使用 Cosmos 作为基本系统 并向其中添加所需的命名空间库 但由于通常的 System Speech Recognition 命名空间过于依赖 Windows Speech
  • 使用 R 剪切功能 - 中断和标签选项如何工作

    我正在寻找 标签是使用 a b 间隔符号构建的 的清晰解释 如中所述cut help file 这似乎缺乏解释 所以我在一些简单的例子上测试了cut 如下 df lt data frame c 1 2 3 4 5 6 7 99 names
  • Haskell:将文件中的每一行插入列表中

    我目前正在使用 Haskell 进行项目 但发现自己遇到了一些麻烦 我应该读取 dictionary txt 文件中的每一行并将其插入到列表中 但我似乎无法这样做 我有这个代码 main do let list loadNums dicti
  • Volley onErrorResponse 给出 NullPointerException

    我在我的android应用程序中尝试volley库 这是我的日志 10 31 14 30 09 277 E AndroidRuntime 22916 java lang NullPointerException 10 31 14 30 09
  • 如何从 Qt 小部件中删除窗口边框(包含最小化、最大化和关闭按钮)?

    我想制作一个小部件 QPushButon 的动画以在我的应用程序屏幕上移动 为此 我创建了一个新按钮 并使用 QPropertyAnimation 类和按钮的属性 几何 将其从上到下移动 问题是按钮带有关闭 最小化 最大化按钮等 我不希望它
  • 在 Java Map 中查找重复值?

    我想将值显示在HashMap A HashMap可能有重复的值 但不是重复的键 但我只想显示一个值一次 所以我应该找出是否Map有重复值 我知道我们可以迭代Map并使用返回布尔值map containsValue value 我想知道是否存
  • 暂存数据库困境

    假设有3个数据库 生产 Staging Dev 据我所知 临时数据库需要与生产数据库同步 但 当我们发展的时候 我们可以为所欲为Dev数据库并更改架构 现在是先有鸡还是先有蛋的问题 要在分期中进行测试 Staging数据库模式需要根据开发数