暂存数据库困境

2023-11-26

假设有3个数据库

  • 生产
  • Staging
  • Dev

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

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

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

你们如何解决这个问题?


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

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

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

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

一旦一切正常...

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

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

  • 数据库、表和列命名约定? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 每当我设计数据库时 我总是想知道是否有命名数据库中项目的最佳方法 我经常问自己以下问题 表名应该是复数吗 列名应该是单数吗 我应该为表或列添加前
  • 创建用于插入、修改和删除的数据库触发器的正确​​语法是什么

    我有一个看起来像是 SQL Server 中数据库触发器的基本场景 但我遇到了一个问题 我有桌子Users 身份证 姓名 电话等 我有桌子用户历史记录 id user id 操作 字段 时间戳 我想要一个数据库触发器 可以随时插入 更新或删
  • 在 django 中创建“历史”类型模型的最佳方法是什么?

    我想为我的 Django 应用程序创建一个类似于 Django 管理员的 最近操作 的功能 以便存储其他模型的历史信息 例如 假设我有两个模型 分别称为 Book 和 Author 我想要第三个模型来存储信息 例如由谁以及何时对模型中的给定
  • 按时间戳字段中的日期过滤结果

    我已经获得了一些帮助 但不确定为什么这不起作用 我正在尝试使用表单让用户过滤他们的活动 存储在数据库中 My code GET from 01 11 2013 GET to 25 11 2013 from DateTime createFr
  • 何时使用 JCR(内容存储库)而不是其他选项?

    我正在尝试评估内容存储库 JSR283 http www jcp org en jsr detail id 283 like 长耳大野兔 http jackrabbit apache org and 模式形状 http www jboss
  • 每个“容器”类一个 DAO 还是每个表一个 DAO?

    我有一个 容器 类 其中的字段包含在多个数据库表中 并且我使用 DAO 模式来访问数据 问题是 我应该为这个 容器 类创建一个 DAO 还是每个表都有一个 DAO 并合并它们的数据更好 您应该根据应用程序的需求而不是数据库的布局来设计 DA
  • 如何使用 django 更新会计应用程序中的余额?

    我正在学习 Django 尝试制作一个会计应用程序来跟踪我的开支等 我使用两种模型创建数据库 一种用于帐户 一种用于操作 但我不知道如何在每次操作时更新我的 余额 我在想 也许每次我保存一个新操作时 我都会通过覆盖操作模型的保存方法来更新余
  • InnoDB 或 MyISAM - 为什么不两者都使用呢?

    我读过各种关于两者之间哪个更好的主题InnoDB and MyISAM 看来争论的都是使用还是其他 根据表的不同 是否不能同时使用两者 这样做会有什么缺点 据我所知 发动机可以在CREATE TABLE命令 因此 某些经常读取的表可以设置为
  • Node.js 和代码优先

    我使用代码优先方法开发实体框架 现在我正在学习 Node js 我想知道是否有一种方法可以使用 Node js 和一些库来实现相同的代码优先方法 我正在考虑使用MySql作为数据库 你可以看看续集 http docs sequelizejs
  • 产品和变体 - 设计数据库的最佳方法

    描述 商店可以有产品 鞋子 T 恤等 每个产品可以有许多变体 每个变体可以有不同的价格和库存 例如T 恤有不同的颜色和尺寸 颜色 蓝色 尺寸 L 价格 10 美元 库存 5 颜色 蓝色 尺寸 XL 价格 10 美元 库存 10 颜色 白色
  • 使用 Spring Boot 的 Flyway Core 给出错误 'delayedFlywayInitializer' 和 'entityManagerFactory' 之间的循环依赖关系

    我想在 SQL Server 数据库上导入一些数据 我使用的是 Spring Boot 2 3 4 我还使用 Hibernate 来生成表 我在pom中添加了flyway核心
  • 如何在可能为空值的字段上创建唯一索引(Oracle 11g)?

    这是包含 3 列的示例表 ID UNIQUE VALUE UNIQUE GROUP ID 我希望可以允许以下记录 1 NULL NULL 2 NULL NULL or 3 NULL 7 4 123 7 or 注意 此条件不允许unique
  • MySQL - 替换列中的字符

    作为一个自学成才的新手 我给自己制造了一个大问题 在将数据插入数据库之前 我将字符串中的撇号 转换为双引号 而不是 MySQL 实际需要的反斜杠和撇号 在我的表增长到超过 200 000 行之前 我认为最好立即纠正此问题 所以我做了一些研究
  • 无法更改 MS Access 2007 上的数据类型

    我有一个巨大的数据库 800MB 其中包含一个名为 上次修改日期 的字段 目前该字段作为文本数据类型输入 但需要将其更改为日期 时间字段以执行一些查询 我有另一个完全相同的数据库 但其中只有 35MB 的数据 当我更改数据类型时 它工作正常
  • 如何阻止 Django 中发生级联删除?

    我的 Django 应用程序中有三个模型类 class Folder models Model folder models ForeignKey Folder null True blank True related name folder
  • python 没有名为serial的模块

    我的 python 程序有问题 我编写了程序来将数据 温度 从 arduino 获取到我的树莓派 sqlite 数据库 但它在第 4 行 导入串行 处给了我一个错误 提示 ImportError 没有名为串行的模块 我使用 python3
  • 使用DBFlow,如何加密已经存在的数据库?

    我正在使用 DBFlow 来处理项目中的数据库 并且我想对现有数据库进行加密 我知道我可能必须删除现有的未加密数据库并创建另一个加密数据库 我也知道我可以将 SQLCipher 与 DBFlow 一起使用 如上所述文档 https gith
  • 将 Access 数据库转换为 SQL Microsoft DTS - 数据类型“130”不在映射文件中

    我正在尝试将大型 Access mdb 数据库导出到 SQL Server 数据库 但遇到了 Microsoft DTS 无法识别 Access 数据库中特定类型字段的数据类型的问题 我查看了相关的访问表 它们被设置为长度为 1 的 文本
  • 什么会导致 Oracle ROWID 更改?

    AFAIK Oracle 中的 ROWID 表示相应数据文件中记录的物理位置 在什么情况下记录的ROWID可能会改变 我所知道的一个是分区表上的更新 它将记录 移动 到另一个分区 还有其他情况吗 我们的大多数数据库都是 Oracle 10
  • 如何使用sql脚本更改列的属性

    如何使用 sql 脚本更改列的属性 这是我尝试过但出现错误的方法 ALTER TABLE dbo tblBiometricPattern COLUMN BiometricPatternID TINYINT NOT NULL IDENTITY

随机推荐

  • 检查标记是否在视图中(地图)-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数据库模式需要根据开发数