删除第二次上次迁移

时间:2016-08-16 12:51:09

标签: entity-framework ef-code-first entity-framework-core

我正在进行代码优先,我需要删除第二次迁移,即基本上需要删除非迁移名称的最后一次迁移。

我用过     删除迁移 但它只删除上次添加的迁移。

我尝试从解决方案中删除,但DBContextModelSnapshot.cs中剩下的代码很少。

是他们在EF Core中删除早期添加的迁移的更简洁方法。

由于

2 个答案:

答案 0 :(得分:0)

重写历史记录很危险,但如果你知道自己在做什么,这是最好的方法。

import org.springframework.beans.factory.InitializingBean;
import org.springframework.http.HttpStatus;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.server.ServerHttpResponse;
import org.springframework.http.server.ServletServerHttpResponse;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class UnauthorizedErrorAuthenticationEntryPoint implements AuthenticationEntryPoint, InitializingBean {

    private HttpMessageConverter messageConverter;

    @SuppressWarnings("unchecked")
    @Override
    public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException {

        MyGenericError error = new MyGenericError();
        error.setDescription(exception.getMessage());

        ServerHttpResponse outputMessage = new ServletServerHttpResponse(response);
        outputMessage.setStatusCode(HttpStatus.UNAUTHORIZED);

        messageConverter.write(error, null, outputMessage);
    }

    public void setMessageConverter(HttpMessageConverter messageConverter) {
        this.messageConverter = messageConverter;
    }

    @Override
    public void afterPropertiesSet() throws Exception {

        if (messageConverter == null) {
            throw new IllegalArgumentException("Property 'messageConverter' is required");
        }
    }

}

答案 1 :(得分:0)

  1. 首先将数据库更新为所需的迁移。在您的情况下,迁移到第三次迁移。在target参数中提供迁移的名称 update-database -target:“第三次迁移”
  2. 然后删除上次迁移的代码更改并删除上次迁移的第二次。然后运行update-databse。
  3. 我实际上更愿意删除上次和上次上次迁移,然后运行add-migration并检查迁移类中所做的更改,然后运行update-database。