首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >术语数据库迁移

术语数据库迁移
EN

Database Administration用户
提问于 2022-04-28 05:34:47
回答 4查看 643关注 0票数 3

我很好奇,当我第一次听说数据库迁移这个词时,它明确地涉及到将整个数据库从一个平台移动到另一个平台。

但是,最近我不得不构建一个需要自己设置数据库的服务器。然后我偶然发现了一个叫做Alembic的蟒蛇库。显然,它也被称为“数据库迁移”工具,当它唯一的目的,说得不对,是一种数据库的git。这对我个人来说很困惑。有人能解释一下我所理解的数据库迁移和数据库迁移之间的区别吗?

再一次,我可能是无知的,可能会错过这些明显的差异,但如果有人能启发我,我真的会很感激。

EN

回答 4

Database Administration用户

回答已采纳

发布于 2022-04-28 16:40:56

虽然这两套工具一般是不同的,但我认为可以说,它们都是“迁移”的意思。

对于应用程序代码,我们通常会讨论“部署”或“发布”:新版本通常是一次性替换旧版本。我们也可以讨论修补,但这仍然有效地取代了代码。

对于数据库,我们通常不会删除旧数据库并创建一个新数据库。有时,我们只是在现有功能的基础上添加新功能,但经常需要以某种方式转换模式。在这两种情况下,这种转变都是指“移徙”:

  • 当从一个数据库引擎移动到另一个数据库引擎时,我们通常需要从旧数据库中提取数据,以某种方式转换数据,然后将其插入到新的数据库中。
  • 当将动态数据库从应用程序的版本N所需的模式更改为版本N+1所需的模式时,我们可能需要做类似的事情:获取旧表X的内容,填充新的表Y,删除表X。

两种类型的“迁移”由不同的专业工具支持,但概念是相同的:您为工具提供了一个初始模式和一个所需的模式,以及一些关于它们之间关系的提示;该工具生成必要的SQL和DDL命令,以便将您的活动数据从一个模式“迁移”到另一个模式。

正如您所观察到的,一个主要的不同之处在于,用于管理应用程序所需的模式的工具通常还包括或集成版本控制功能。这是因为在这种情况下,您可能会频繁地进行小型迁移,并且需要在不同的时间管理它们的部署到不同的环境。专注于在大不相同的数据库引擎之间迁移的工具不需要将重点放在这个特性上,而是可能有诸如连续数据复制之类的特性,您可以并行运行这两个数据库。

票数 1
EN

Database Administration用户

发布于 2022-04-28 07:35:48

就我个人而言,我和您一样理解数据库迁移。不过,我不知道是否有单一的正式定义。可能像许多其他计算术语一样,每个人都有自己的定义。

在Wikipedia中(因为每个人都可以编辑文章,这说明了不同的人如何使用相同的术语):

  • 模式迁移页面描述了Alembic执行的活动。它声称这也被称为“数据库迁移”。Rails简单地称之为“迁移”。
  • 数据迁移页面的“数据库迁移”小节将其描述为“从一个数据库供应商转移到另一个数据库供应商,或者升级正在使用的数据库软件的版本",因此它符合我们的理解。
票数 3
EN

Database Administration用户

发布于 2022-04-28 10:32:17

迁移这个词的意思可以是“从某物的一部分移动到另一部分”。您所描述的(参见Fat P的答案)是模式迁移。就个人在这一领域的经验而言,这些是比较常见的移徙类型:

数据迁移:将数据移动到另一个系统,通常从一个数据库软件到另一个数据库软件。

数据库或主机迁移:将数据库移动到另一个主机,但通常使用相同的数据库软件,可能是在更高的版本上。

模式迁移:更改数据库的模式

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

https://dba.stackexchange.com/questions/311421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档