Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Liquibase:不支持H2的模式名,但MySQL可以 我正在使用maven cargo部署我的Spring应用程序 我正在尝试对MySQL和H2嵌入式数据库运行此操作。 H2的配置如下所示_Java_Spring_Maven_H2_Liquibase - Fatal编程技术网

Java Liquibase:不支持H2的模式名,但MySQL可以 我正在使用maven cargo部署我的Spring应用程序 我正在尝试对MySQL和H2嵌入式数据库运行此操作。 H2的配置如下所示

Java Liquibase:不支持H2的模式名,但MySQL可以 我正在使用maven cargo部署我的Spring应用程序 我正在尝试对MySQL和H2嵌入式数据库运行此操作。 H2的配置如下所示,java,spring,maven,h2,liquibase,Java,Spring,Maven,H2,Liquibase,当我使用cargo运行集成测试时,我看到两个不同之处 当针对MySQL运行时在运行Liquibase时会注意模式名称,我看到test\u common test_common.DATABASECHANGELOG INFO 5/26/14 9:18上午:liquibase:liquibase/changelog.xml:liquibase/2014/1-1.xml::05192014.1525::h2:创建了表网络 INFO 5/26/14 9:18上午:liquibase:liquibase/c

当我使用cargo运行集成测试时,我看到两个不同之处

  • 当针对
    MySQL运行时
    在运行Liquibase时会注意模式名称,我看到test\u common
  • test_common.DATABASECHANGELOG INFO 5/26/14 9:18上午:liquibase:liquibase/changelog.xml:liquibase/2014/1-1.xml::05192014.1525::h2:创建了表网络 INFO 5/26/14 9:18上午:liquibase:liquibase/changelog.xml:liquibase/2014/1-1.xml::05192014.1525::h2:ChangeSet liquibase/2014/1-1.xml::05192014.1525::h2在8ms内成功运行 INFO 5/26/14 9:18上午:liquibase:liquibase/changelog.xml:liquibase/2014/1-1.xml::05192014.1525::h2:从 test_common.DATABASECHANGELOG INFO 5/26/14 9:18上午:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:从 test_common.DATABASECHANGELOG INFO 5/26/14 9:18 AM:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:插入到中的新行 网络 INFO 5/26/14 9:18 AM:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:插入到中的新行 网络 INFO 5/26/14 9:18 AM:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:插入到中的新行 网络 INFO 5/26/14 9:18 AM:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:插入到中的新行 网络 INFO 5/26/14 9:18 AM:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:插入到中的新行 网络 INFO 5/26/14 9:18 AM:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:插入到中的新行 网络 INFO 5/26/14 9:18上午:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:ChangeSet liquibase/2014/1-2.xml::05192014.1525::h2在6ms内成功运行 INFO 5/26/14 9:18上午:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:从 test_common.DATABASECHANGELOG 信息5/26/14 9:18上午:liquibase:成功释放更改日志锁

  • 当针对
    H2
    运行时,它适用于PUBLIC模式,而not适用于test\u common
  • PUBLIC.DATABASECHANGELOG INFO 5/26/14上午9:45:liquibase:liquibase/changelog.xml:liquibase/2014/1-1.xml::05192014.1525::h2:创建了表网络 INFO 5/26/14上午9:45:liquibase:liquibase/changelog.xml:liquibase/2014/1-1.xml::05192014.1525::h2:ChangeSet liquibase/2014/1-1.xml::05192014.1525::h2在5ms内成功运行 INFO 5/26/14上午9:45:liquibase:liquibase/changelog.xml:liquibase/2014/1-1.xml::05192014.1525::h2:从 PUBLIC.DATABASECHANGELOG INFO 5/26/14上午9:45:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:从 PUBLIC.DATABASECHANGELOG INFO 5/26/14上午9:45:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:插入到中的新行 网络 INFO 5/26/14上午9:45:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:插入到中的新行 网络 INFO 5/26/14上午9:45:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:插入到中的新行 网络 INFO 5/26/14上午9:45:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:插入到中的新行 网络 INFO 5/26/14上午9:45:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:插入到中的新行 网络 INFO 5/26/14上午9:45:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:插入到中的新行 网络 INFO 5/26/14上午9:45:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:ChangeSet liquibase/2014/1-2.xml::05192014.1525::h2在5ms内成功运行 INFO 5/26/14上午9:45:liquibase:liquibase/changelog.xml:liquibase/2014/1-2.xml::05192014.1525::h2:从 PUBLIC.DATABASECHANGELOG 信息5/26/14上午9:45:liquibase:已成功释放更改日志锁


    这里出了什么问题?

    Liquibase尝试处理“模式”和“目录”,其中目录是最顶层的容器,可能包含也可能不包含模式。对于像MySQL这样只有一级对象分组的数据库,“catalog”和“schema”是可以互换的。对于H2,数据库中既可以有目录/数据库,也可以有模式。您的h2安装程序正在使用test_公共数据库,但该数据库中的默认公共架构

    如果要将Liquibase配置为使用非默认H2模式,请使用“defaultSchema”SpringLiquibase配置属性

    @Configuration
    @Profile("development")
    public class H2DatabaseConfig extends JpaCommonConfig {
        @Override
        public DataSource dataSource() {
            // (todo: harit) get rid of hard coding
            System.out.println("This is H2 Database Profile");
            final BasicDataSource dataSource = new BasicDataSource();
            dataSource.setDriverClassName("org.h2.Driver");
            dataSource.setUrl("jdbc:h2:mem:test_common");
            dataSource.setUsername("sa");
            dataSource.setPassword("");
            return dataSource;
        }
    
        @Override
        protected Class<? extends Dialect> getDatabaseDialect() {
            return H2Dialect.class;
        }
    
        @Override
        protected Properties getJpaProperties() {
            final Properties properties = new Properties();
            properties.setProperty(HBM2DDL_AUTO, Hbm2ddlType.CREATE_DROP.toValue());
            properties.setProperty(SHOW_SQL, TRUE.toString());
            properties.setProperty(FORMAT_SQL, TRUE.toString());
            properties.setProperty(USE_SQL_COMMENTS, TRUE.toString());
            properties.setProperty(CONNECTION_CHAR_SET, getHibernateCharSet());
            properties.setProperty(NAMING_STRATEGY, ImprovedNamingStrategy.class.getName());
    
            return properties;
        }
    }
    
    @Configuration
    @Profile("default")
    public class MySqlDatabaseConfig extends JpaCommonConfig {
        @Override
        public DataSource dataSource() {
            // (todo: harit) remove hardcoding to read from environment variables
            System.out.println("This is MySQL Database Profile");
            final BasicDataSource dataSource = new BasicDataSource();
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql://localhost:3306/test_common?createDatabaseIfNotExist=true");
            dataSource.setUsername("root");
            return dataSource;
        }
    
        @Override
        protected Class<? extends Dialect> getDatabaseDialect() {
            return MySQL5InnoDBDialect.class;
        }
    
        @Override
        protected Properties getJpaProperties() {
            final Properties properties = new Properties();
            properties.setProperty(HBM2DDL_AUTO, Hbm2ddlType.UPDATE.toValue());
            properties.setProperty(SHOW_SQL, TRUE.toString());
            properties.setProperty(FORMAT_SQL, TRUE.toString());
            properties.setProperty(USE_SQL_COMMENTS, TRUE.toString());
            properties.setProperty(CONNECTION_CHAR_SET, getHibernateCharSet());
            properties.setProperty(NAMING_STRATEGY, ImprovedNamingStrategy.class.getName());
            return properties;
        }
    }
    
    INFO 5/26/14 9:18 AM:liquibase: Successfully acquired change log lock
    INFO 5/26/14 9:18 AM:liquibase: Dropping Database Objects in schema: test_common.test_common
    INFO 5/26/14 9:18 AM:liquibase: Creating database history table with name: test_common.DATABASECHANGELOG
    INFO 5/26/14 9:18 AM:liquibase: Successfully released change log lock
    INFO 5/26/14 9:18 AM:liquibase: Successfully acquired change log lock
    INFO 5/26/14 9:18 AM:liquibase: Reading from test_common.DATABASECHANGELOG
    INFO 5/26/14 9:18 AM:liquibase: Reading from test_common.DATABASECHANGELOG
    INFO 5/26/14 9:18 AM:liquibase: Reading from test_common.DATABASECHANGELOG
    INFO 5/26/14 9:18 AM:liquibase: liquibase/changelog.xml: liquibase/2014/1-1.xml::05192014.1525::h2: Reading from
    
    INFO 5/26/14 9:45 AM:liquibase: Successfully acquired change log lock
    INFO 5/26/14 9:45 AM:liquibase: Dropping Database Objects in schema: TEST_COMMON.PUBLIC
    INFO 5/26/14 9:45 AM:liquibase: Creating database history table with name: PUBLIC.DATABASECHANGELOG
    INFO 5/26/14 9:45 AM:liquibase: Creating database history table with name: PUBLIC.DATABASECHANGELOG
    INFO 5/26/14 9:45 AM:liquibase: Successfully released change log lock
    INFO 5/26/14 9:45 AM:liquibase: Successfully acquired change log lock
    INFO 5/26/14 9:45 AM:liquibase: Reading from PUBLIC.DATABASECHANGELOG
    INFO 5/26/14 9:45 AM:liquibase: Reading from PUBLIC.DATABASECHANGELOG
    INFO 5/26/14 9:45 AM:liquibase: Reading from PUBLIC.DATABASECHANGELOG
    INFO 5/26/14 9:45 AM:liquibase: liquibase/changelog.xml: liquibase/2014/1-1.xml::05192014.1525::h2: Reading from