与prisma迁移的无障碍数据库迁移

2021-03-17 03:22:05

今天' s数据驱动应用程序需要持续变化。在使用关系数据库时,管理不断发展的模式可能是一个挑战。

prisma迁移是一个数据库模式迁移工具,简化了与串联应用程序的应用程序模式。它使模式更改可预测和易于验证和执行 - 特别是对于在项目上进行协作的团队。

在运行实验和预览版本的Prisma迁移一年中并收集我们社区的有很多有用的反馈,我们很高兴地推出Prisma迁移以获得一般可用性🎉。

数据库架构迁移在软件开发工作流中发挥着至关重要的作用,并影响您的应用程序' s最关键的组件 - 数据库。我们'在允许您控制数据库模式如何更改时,我们建立迁移到可预测的迁移。

Prisma迁移基于您对Prisma Schema的更改生成普通SQL文件 - 所需数据库模式的声明定义。生成的SQL迁移是完全自定义的,允许您使用任何底层数据库功能,例如操纵支持迁移的数据,设置触发器,存储过程和视图。

与其他迁移工具相比,以逐行手动制作SQL迁移行的牺牲品提供完全控制的迁移工具,通过迁移,大多数迁移都可以在"自动飞行员和#34;当您需要时,通过SQL可选完全控制。

PRISMA迁移通过自动化编写数据库迁移的重复和错误的方面,探讨了生产力和控制之间的平衡,同时为您提供最终说明它们的执行。

查看使用prisma迁移的高级迁移方案指南,可以在Git存储库中跟踪生成的迁移,从而随着时间的推移,您可以介绍您的架构和#39;此外,它可以减轻架构改变的推理,作为给定的应用程序的一部分。

使用SQL的一个好处是,不熟悉PRISMA架构的团队成员仍可审查迁移。

了解有关使用ProSgreSQL,MySQL,SQLite和SQL Server(预览)的现有项目中的现有项目中采用Prisma Mirtate Prisma Miagrate的更多信息。这使您可以使用现有项目并提高迁移和自动生成迁移的生产力。此外,您还可以生成用于类型安全数据库访问的Prisma客户端。

由于Prisma迁移是语言不可知论,因此可以在使用其中一个支持的数据库的项目中采用它。

遵循添加Prisma迁移到现有项目的指南Prisma迁移与Prisma Client使用Prisma Schema作为其共享真理来源集成。换句话说,PRISMA客户端和PRISMA迁移生成的迁移都来自PRISMA架构。

这使得应用程序代码中的同步和验证数据库模式更改,通过利用PRISMA客户端&#39型安全性更加易于。

自去年Prisma迁移预览版以来,我们已经抛光并改进了Prisma Miagrate的以下各个方面:

更多控制:本机类型可直接从Prisma Schema完全控制您要使用的数据库类型。

生产准备:Prisma Miagrate在内部和许多社区成员内部通过严格的测试,使其准备好生产使用。

您可以使用与PostgreSQL,MySQL,SQLite的迁移。 SQL Server支持可在预览中使用。

prisma迁移基于prisma架构,通过生成对数据库执行的.sql迁移文件。

prisma架构是架构迁移的起点,并提供了数据库的所需末尾的概述。 prisma迁移检查prisma架构的变化,并生成要应用的必要的.sql迁移文件。

根据您是否'重新原型或在生产中应用迁移,应用迁移看起来非常不同。例如,在开发过程中,有方案可以容忍重置数据库以便更快的原型设计,而在生产中,必须非常小心以避免数据丢失和破坏变化。

prisma db push:根据prisma架构创建数据库模式,而无需任何迁移。旨在使用当地原型设计。该命令目前正在预览中

prisma迁移dev:根据Prisma架构的更改创建SQL迁移,适用它并生成Prisma客户端。

选择两种方法中的哪一种取决于原型设计的阶段'重新。如果您开始实施新功能并希望尝试快速更改数据库模式,Prisma DB推送提供了一种快速实现这一目标的方法。

一旦你'对更改感到舒服,prisma迁移dev将生成SQL迁移并应用它:

展开以查看生成的迁移ALTER表&#34的SQL内容; POST"添加外键(" authorid")参考文献"用户" (" ID")删除级联级联级联级联;

执行迁移后,您通常将迁移文件提交到代码存储库,以便迁移可以应用于其他环境。

数据库模式的进一步更改遵循相同的工作流程,并以更新prisma架构开始。

要将迁移应用于其他环境(如生产),请将更改拉到包含迁移的存储库并运行以下命令:

PRISMA迁移也可用于在连续集成管道中应用迁移,以进行部署的标题和连续送货管道。

原则上,PRISMA迁移部署CLI命令用于非交互式自动化环境,例如, github动作。当您想要旋转数据库并运行迁移以运行集成测试时,这非常有用。

更详细地,这在迁移文档和生产故障排除指南中介绍。

自预览版本的最重要变化是引入本机类型,集成播种和对云本机开发的支持。

如果您从预览版本升级,则可以从迁移脚本中删除--preview-feature标志。

以前,PRISMA迁移仅支持支持的数据库中的广泛可用类型的子集。使用此版本,我们展开该设置并允许您在Prisma Schema中定义确切的数据库类型。

了解有关原始数据库类型以前工作的更多信息,prisma架构中的字段将用Prisma暴露的标量类型的类型注释。

这些标量类型中的每一个都具有默认映射到特定的数据库类型。例如,字符串prisma scalar类型将映射到postgreSQL中的文本:

使用此版本,我们已经扩展了一组支持的数据库类型,您可以通过允许您添加本机类型注释来定义。

在该示例中,@ db.varchar(100)属性表示迁移应该使用PostgreSQL的VARCHAR类型。这在迁移模型的SQL中也可见:

迁移配有内心支持的播种。播种使您可以快速引导可用的测试环境。根据您所需的方法,您可以在本地和共享环境中使用播种。

注意:播种功能仍在预览中,并将在未来的释放中稳定。

要使用播种,请定义prisma文件夹中的脚本并运行prisma db种子命令。

每当prisma迁移重置被调用以重置和重新填充开发数据库时,会自动触发种子功能。当在调用Prisma Migrate Dev后交互式重置数据库时,它也触发了它'在审查合作者和#39时特别有用;工作,因为它允许使用实际数据审阅架构迁移。

随着迁移达到一般可用性,它已准备好采用生产。 但它并不停止在这里 - 我们正在继续发展和改善Prisma积极迁移。 除此之外,以下路线图项将进一步改进数据库模式的总体管理: 我们' ve被对12月的预览发布的积极回应不堪重负,我们喜欢感谢每个测试和提供富有洞察力反馈的人 - Prisma Miagrate是那些努力的产品 添加prisma迁移到现有项目描述了如何将prisma迁移到具有数据库的现有项目。 👷♀️我们今天很激动,普遍分享prisma迁移的一般可用性,并等待看到你们所有人的内容。