我很好奇,当我第一次听说数据库迁移这个词时,它明确地涉及到将整个数据库从一个平台移动到另一个平台。
但是,最近我不得不构建一个需要自己设置数据库的服务器。然后我偶然发现了一个叫做Alembic的蟒蛇库。显然,它也被称为“数据库迁移”工具,当它唯一的目的,说得不对,是一种数据库的git。这对我个人来说很困惑。有人能解释一下我所理解的数据库迁移和数据库迁移之间的区别吗?
再一次,我可能是无知的,可能会错过这些明显的差异,但如果有人能启发我,我真的会很感激。
发布于 2022-04-28 16:40:56
虽然这两套工具一般是不同的,但我认为可以说,它们都是“迁移”的意思。
对于应用程序代码,我们通常会讨论“部署”或“发布”:新版本通常是一次性替换旧版本。我们也可以讨论修补,但这仍然有效地取代了代码。
对于数据库,我们通常不会删除旧数据库并创建一个新数据库。有时,我们只是在现有功能的基础上添加新功能,但经常需要以某种方式转换模式。在这两种情况下,这种转变都是指“移徙”:
两种类型的“迁移”由不同的专业工具支持,但概念是相同的:您为工具提供了一个初始模式和一个所需的模式,以及一些关于它们之间关系的提示;该工具生成必要的SQL和DDL命令,以便将您的活动数据从一个模式“迁移”到另一个模式。
正如您所观察到的,一个主要的不同之处在于,用于管理应用程序所需的模式的工具通常还包括或集成版本控制功能。这是因为在这种情况下,您可能会频繁地进行小型迁移,并且需要在不同的时间管理它们的部署到不同的环境。专注于在大不相同的数据库引擎之间迁移的工具不需要将重点放在这个特性上,而是可能有诸如连续数据复制之类的特性,您可以并行运行这两个数据库。
发布于 2022-04-28 07:35:48
发布于 2022-04-28 10:32:17
迁移这个词的意思可以是“从某物的一部分移动到另一部分”。您所描述的(参见Fat P的答案)是模式迁移。就个人在这一领域的经验而言,这些是比较常见的移徙类型:
数据迁移:将数据移动到另一个系统,通常从一个数据库软件到另一个数据库软件。
数据库或主机迁移:将数据库移动到另一个主机,但通常使用相同的数据库软件,可能是在更高的版本上。
模式迁移:更改数据库的模式
https://dba.stackexchange.com/questions/311421
复制相似问题