DataBase结构组件:FluentMigrator

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介:

     今天将介绍一款开源组件FluentMigrator,其提供了jQuery式链式编程方式,和3.0后的表达式语法使其语义清晰。主要提供我们队数据库结构的维护,版本控制回滚和新增。适用于 敏捷和TDD实践中我们的需求功能的递增,数据结构增加,可持续化集成,应用场景感觉如其名Fluent(流畅)。

一:我们先利用NuGet安装FluentMigrator:

1:在vs在打开Package Manager Console:

image

2:安装FluentMigrator:

image

3:如果你希望控制台提交,可以安装其tools:

image

 

二:下面我面做一个简单的实例订单Order(这里仅列出其部分字段,不会考虑实际业务):

DO:

using System;

namespace FluentMigratorTest 

    public  class  Orders 
    { 
        public int ID { get; set; }

        public string CustomerID { get; set; }

        public decimal DisCount { get; set; }

        public DateTime OrderDate { get; set; } 
    } 
}

 

表结构块:

using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using FluentMigrator;

namespace FluentMigratorTest 

    [Migration(0)] 
    public class OrderMigration:Migration 
    { 
        public override void Up() 
        {                      
            Create.Table("Orders_test")                
                .WithColumn("ID").AsInt32().Identity().PrimaryKey("id_pk").Indexed("Orders_Pk_ID") 
                .WithColumn("CustomerID").AsString().ForeignKey("Customers", "CustomerID").NotNullable() 
                .WithColumn("DisCount").AsDecimal().WithDefaultValue(0) 
                .WithColumn("OrderDate").AsDateTime().WithDefault(SystemMethods.CurrentDateTime); 
        }

        public override void Down() 
        {   
            Delete.Table("Orders_test"); 
        } 
    } 
}

其提供了Up版本递增和Down回滚。语法是不是很流畅?其不仅这些功能还提供了:

image

image

 

对表结构的新增,修改,删除,执行sql方法。

利用其提供的tools,更新在数据库

image

支持数据库:

  • sqlserver2000
  • sqlserver2005
  • sqlserver2008
  • sqlserverce
  • sqlserver
  • mysql
  • postgres
  • oracle
  • sqlite
  • jet

    并支持Profile,部署开发和测试不通的数据库。

    更多其它信息请参加:https://github.com/schambers/fluentmigrator/wiki




  •  本文转自 破狼 51CTO博客,原文链接:http://blog.51cto.com/whitewolfblog/880226

  • ,如需转载请自行联系原作者


  • 相关实践学习
    使用SQL语句管理索引
    本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
    SQL Server on Linux入门教程
    SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
    相关文章
    |
    关系型数据库 数据库 Oracle
    |
    关系型数据库 数据库 Oracle
    |
    6月前
    |
    SQL Oracle 关系型数据库
    WARNING: Too Many Parse Errors With error=911 When Running a JDBC Application Connected to an Oracle 19c database
    WARNING: Too Many Parse Errors With error=911 When Running a JDBC Application Connected to an Oracle 19c database (
    89 2
    |
    6月前
    |
    Oracle 关系型数据库
    19c 开启Oracle Database Vault
    19c 开启Oracle Database Vault
    162 1
    |
    6月前
    |
    SQL Oracle 关系型数据库
    Connect to Autonomous Database Using Oracle Database Tools
    Connect to Autonomous Database Using Oracle Database Tools
    60 1
    |
    5月前
    |
    Oracle 关系型数据库 Linux
    Requirements for Installing Oracle Database/Client 19c on OL8 or RHEL8 64-bit (x86-64) (Doc ID 2668780.1)
    Requirements for Installing Oracle Database/Client 19c on OL8 or RHEL8 64-bit (x86-64) (Doc ID 2668780.1)
    47 0
    |
    6月前
    |
    人工智能 Oracle 关系型数据库
    一篇文章弄懂Oracle和PostgreSQL的Database Link
    一篇文章弄懂Oracle和PostgreSQL的Database Link
    |
    6月前
    |
    SQL Oracle 安全
    Oracle Database Vault Access Control Components
    Oracle Database Vault Access Control Components
    52 0
    |
    6月前
    |
    Oracle 安全 关系型数据库
    What Is Oracle Database Vault?
    The Oracle Database Vault security controls protect application data from unauthorized access, and helps you to comply with privacy and regulatory requirements. You can deploy controls to block privileged account access to application data and control sensitive operations inside the database using
    41 0