Sql server 如何在MS Server中将maven插件与指定的架构进行集成

Sql server 如何在MS Server中将maven插件与指定的架构进行集成,sql-server,liquibase,Sql Server,Liquibase,这是我对liquibase maven插件的配置: <plugin> <groupId>org.liquibase</groupId> <artifactId>liquibase-maven-plugin</artifactId> <version>3.6.3</version> <executions> <execution>

这是我对liquibase maven插件的配置:

  <plugin>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-maven-plugin</artifactId>
    <version>3.6.3</version>
    <executions>
      <execution>
        <goals>
          <goal>status</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <changeLogFile>src/main/resources/db/changelog/db-changelog-master.xml</changeLogFile>
      <driver>${liquibase.driver}</driver>
      <username>${liquibase.username}</username>
      <password>${liquibase.password}</password>
      <url>${liquibase.url}</url>
      <referenceDriver>${liquibase.driver}</referenceDriver>
      <referenceUsername>${liquibase.username}</referenceUsername>
      <referencePassword>${liquibase.password}</referencePassword>
      <referenceUrl>${liquibase.url}</referenceUrl>
      <promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>
    </configuration>
    <dependencies>
      <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>2.3.0</version>
      </dependency>
      <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <version>6.4.0.jre8</version>
      </dependency>
    </dependencies>
  </plugin>
架构是使用以下脚本创建的:

IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'eBatch_Retry')) 
BEGIN
    EXEC ('CREATE SCHEMA [eBatch_Retry]')
END
我正在使用的用户被授予数据库中的所有内容。这似乎是许可问题,我对此感到非常困惑


有什么办法可以解决我的问题吗?

解决方案是创建数据库,因为模式有不同的含义。在应用下一条指令后,我的liquibase管理了其中的默认模式(dbo)

例如:

<liquibase.url>jdbc:sqlserver://localhost:1433;DatabaseName=eBatch_Retry</liquibase.url>
jdbc:sqlserver://localhost:1433;DatabaseName=eBatch\u重试

平心而论,MsSqlServer对模式的“使用”更像是RDBMS对“模式”的正确整体使用。如果您曾经使用过多个RDBMS,那么Oracle的这条评论就说明了问题。“此语句实际上并不创建架构。”
[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.6.3:migrate (default-cli) on project dc-database: Error setting up or running Liquibase: liquibase.exception.DatabaseException: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open database "eBatch_Retry" requested by the login. The login failed. ClientConnectionId:0a136358-788a-4b78-b779-76175467a832 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'eBatch_Retry')) 
BEGIN
    EXEC ('CREATE SCHEMA [eBatch_Retry]')
END
CREATE DATABASE eBatch_Retry;
<liquibase.url>jdbc:sqlserver://localhost:1433;DatabaseName=eBatch_Retry</liquibase.url>