SQL Serverasp.net mvc CodeFirst模式数据库迁移手续

 

使用Code
First模式构建好核心的切近后,项目也初步搭建完毕并成功运行,而且就用数据库表结构自动生成了。

而是,我产生新的近乎设投入,有字段需要改,那怎么惩罚呢,删库,跑路 ?  哈哈 

 

使用数据库迁移,将原结构不转移动,将新建类进行独立建表操作,或者是一度生数据库表,改变字段,那就修改表。

 

搬手续:

1.打开程序包管理器控制台:工具->NuGet包管理器->程序包管理器控制台.(当然还起其他措施呢得以打开,我比好这种)**

SQL Server 1

点击后用弹出程序包管理器控制台

SQL Server 2

 极其要注意的凡默认项目!!!

2.起动数据库迁移,执行命令:enable-migrations

SQL Server 3

 

由于Models不肯定就是直接运用项目被已有些文件夹Models,从而当您选中启动项目也asp.net
mvc 框架类型时,此处将会晤报错

切实来拘禁本身当下色之遍布情况:

SQL Server 4

自身拿模型分离出来了,以至于当我默认选中SearchEngine为启动项目时,在程序包管理器控制台中输入的第一个令就见面报错

SQL Server 5

 

釜底抽薪方案:选中默认项目,选择啊DbContext所当的门类,此处我之是类库

马到成功操作会如下提示:

SQL Server 6

还要于DbContext同级目录下加了migrations目录

SQL Server 7

 

3.始于数据库迁移命令**

1.Add-migration [起定义版本名称]

**  输入add-migration updateorderheader**

**SQL Server 8**

2.update-database

**  输入update-database**

SQL Server 9

 

这里设同本人同一用DbContext单独分割出的内需专注,需要以现阶段类库的布置文件被丰富数据库的连接地址

 

SQL Server 10

假如是直以asp.net
mvc框架中之Models中入的DbContext,则可不要,会一直读取Web.Config文件被之连接字符串

 

伺机命令执行着……

出现异常了

SQL Server 11

 

 开始摸索我电脑被之SQL Server Configuration Manage ,如果出则打开,找到

 SQL Server 12

 

 配置TCP/IP协议也曾启用即可。

自身的地面没有拖欠工具,只能通过如下方式找到该处

点击自己之微处理器右键->管理->服务以及应用程序->SQLServer配置管理器   
 ( 两破搜索就家伙还没有找到,貌似都是直打当时解决之)

 重新输入指令,等待执行

SQL Server 13

初步成功

 

由数据库被稍微表无需变更

咱俩可以migrations目录中,更改需要充实或修改的具体表

SQL Server 14

 

 

透过修改中的CreateTable/DropTable,可以控制什么表得改变

namespace SAssassin.EF.Model.Migrations
{
    using System;
    using System.Data.Entity.Migrations;

    public partial class updateorderheader : DbMigration
    {
        public override void Up()
        {
            CreateTable(
                "dbo.MyFileInfoes",
                c => new
                {
                    Id = c.Int(nullable: false, identity: true),
                    FileName = c.String(),
                    FileDescription = c.String(),
                    FilePath = c.String(),
                    FileType = c.Byte(nullable: false),
                    FileSize = c.String(),
                    FileStatus = c.Byte(nullable: false),
                    IsPublic = c.Byte(nullable: false),
                    UserId = c.String(),
                    UserName = c.String(),
                    CreateDate = c.DateTime(nullable: false),
                    LastModityDate = c.DateTime(nullable: false),
                })
                .PrimaryKey(t => t.Id);
        }

        public override void Down()
        {
            DropTable("dbo.MyFileInfoes");
        }
    }
}

4.改动代码配置,实现后的操作没有那辛苦

修改migrations目录中的Configuration.cs文件,开启自动迁移

SQL Server 15

5.在项目Global.asax的Application_Start中丰富如下代码行:

System.Data.Entity.Database.SetInitializer(new System.Data.Entity.MigrateDatabaseToLatestVersion<SAssassin.EF.Model.CodeFirst, SAssassin.EF.Model.Migrations.Configuration>());

 

 

暨是,数据库迁移工作曾终结了。

 

 2017-10-15,望技术有成后能回来看见自己的脚步。

 

相关文章