码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • .NET Evolve 数据库版本管理工具


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

    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的使用方法,非常简单,只需指定一个数据库连接对象,数据库脚本(建库脚本)

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

    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;
    }

    只需在需要初始化数据库的地方调用上面的方法即可完成数据库版本控制。

  • 相关阅读:
    线性DP题目汇总(持续更新)
    MySQL小记——DDL、DML、DQL
    解决requests库中UnicodeError异常的问题
    @RestController和@Controller的区别
    C++进阶篇-----多态
    野兔在线工具系统V2.7.1中文版更新
    带领大家认识 :指针数组,浅浅分析:数组名与&数组名的区别联系
    HTTP(http+抓包Fiddler+协议格式+请求+响应)
    大厂招人不怕花钱的原因是。。。
    Linux音频-基本概念
  • 原文地址:https://www.cnblogs.com/ycit/p/17646572.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号