前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.NET的数据库版本管理工具 Evolve

.NET的数据库版本管理工具 Evolve

作者头像
郑子铭
发布2023-09-27 09:15:38
2250
发布2023-09-27 09:15:38
举报

1、简介

提到数据库版本管理,Java领域开发首先会想到大名鼎鼎的flyway。但是它不适用.NET领域,那么.NET领域也需要做数据库版本管理,该用什么工具?自行造轮子?.NET领域的解决方案就是Evolve,这是一个开源库。[仓库地址](GitHub - lecaillon/Evolve: Database migration tool for .NET and .NET Core projects. Inspired by Flyway.)

Evolve 翻译成中文意为 “进化、演变

支持数据源有PostgreSQL,SQL Server,SQLite,MySQL,MariaDB,Cassandra,CockroachDB。文档介绍详见[官方网站](Getting Started :: Evolve (evolve-db.netlify.app))

2、开始

在NuGet仓库搜索Evolve第一个就是。

下面便是Evolve的使用方法,非常简单,只需指定一个数据库连接对象,数据库脚本(建库脚本)

代码语言:javascript
复制

        private static Evolve BuildEvolve(IDbConnection cnx)
        {
            var evolve = new Evolve((System.Data.Common.DbConnection)cnx, msg => Debug.WriteLine(msg))
            {
                IsEraseDisabled = true,
                // 用于记录数据库版本记录的表,指定表名后,会自动创建
                MetadataTableName = "db_changelogs"
            };
            // 指定数据库脚本所在目录
            var dbPaths = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "db_migrations");
            if (Directory.Exists(dbPaths) && Directory.GetFiles(dbPaths, "*.sql").Length > 0)
            {
                evolve.Locations = new[] { dbPaths };
            }
            else
            {
                // 未找到数据库脚本的逻辑处理,这里可不做任何处理接返回
                evolve.EmbeddedResourceAssemblies = new Assembly[]
                {
                    typeof(SqlDbClientContext).Assembly
                };
            }
 
            return evolve;
        }

脚本通常是DDL sql文件,可用Navicat等可视化工具建库完成后,导出为sql文件

推荐阅读:

Blazor学习之旅 (11) 简易SignalR聊天室

.NET 8 Release Candidate 1 (RC1)现已发布,包括许多针对ASP.NET Core的重要改进!

每个.NET开发都应掌握的C#异常处理知识点

10款Visual Studio实用插件

.NET开源的轻量化定时任务调度,支持临时的延时任务和重复循环任务(可持久化) - FreeScheduler

.NET多线程下解决资源竞争的7种方法

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-27 08:00,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet NB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档