当前位置: 首页 > 知识库问答 >
问题:

H2:如何设置默认模式和数据库?

祁修平
2023-03-14

我使用< code>Liquibase更新我的数据库,并对< code>H2进行测试。

我正在使用Spring来配置属性。我使用

dataSource.setUrl("jdbc:h2:mem:test_common");

连接到testcommon数据库,但没有成功。

我意识到在H2数据库中!=模式,所以我尝试将默认模式设置为

dataSource.setUrl("jdbc:h2:mem:test_common;INIT=CREATE SCHEMA test_common\\; SET SCHEMA test_common");

但这没有成功,我看到日志是

INFO 5/26/14 2:24 PM:liquibase: Dropping Database Objects in schema: TEST_COMMON.PUBLIC
INFO 5/26/14 2:24 PM:liquibase: Creating database history table with name: PUBLIC.DATABASECHANGELOG
INFO 5/26/14 2:24 PM:liquibase: Creating database history table with name: PUBLIC.DATABASECHANGELOG
INFO 5/26/14 2:24 PM:liquibase: Successfully released change log lock
INFO 5/26/14 2:24 PM:liquibase: Successfully acquired change log lock
INFO 5/26/14 2:24 PM:liquibase: Reading from PUBLIC.DATABASECHANGELOG
INFO 5/26/14 2:24 PM:liquibase: Reading from PUBLIC.DATABASECHANGELOG
INFO 5/26/14 2:24 PM:liquibase: Reading from PUBLIC.DATABASECHANGELOG
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-1.xml::05192014.1525::h2: Reading from PUBLIC.DATABASECHANGELOG
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-1.xml::05192014.1525::h2: Table network created
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-1.xml::05192014.1525::h2: ChangeSet liquibase/2014/1-1.xml::05192014.1525::h2 ran successfully in 5ms
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-1.xml::05192014.1525::h2: Reading from PUBLIC.DATABASECHANGELOG
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: Reading from PUBLIC.DATABASECHANGELOG
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: New row inserted into network
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: New row inserted into network
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: New row inserted into network
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: New row inserted into network
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: New row inserted into network
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: New row inserted into network
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: ChangeSet liquibase/2014/1-2.xml::05192014.1525::h2 ran successfully in 5ms
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: Reading from PUBLIC.DATABASECHANGELOG

如何在 H2 中设置默认架构和数据库名称?

共有2个答案

凌华奥
2023-03-14

看起来您正在通过Java API与Liquibase进行交互。数据库对象上有一个 setDefaultSchemaName() 方法,可用于设置不同的默认架构。

颛孙轩昂
2023-03-14

作为记录,SET SCHEMA 命令的 H2 数据库站点的“命令”页面显示:

新连接的默认架构是< code>PUBLIC。

该留档还指出,您可以在连接时指定默认架构:

此设置可以附加到数据库URL:jdbc: h2: test; ScheMA=ABC

至于访问各种数据库,H2不支持CLUSTERCATALOG的SQL标准概念。您连接到一个特定的数据库(曲库)作为JDBC URL的一部分。与该数据库的连接仅限于该单个数据库。请参阅问题,您可以在H2中创建多个目录吗?托马斯·穆勒的回答。

您可以打开到另一个数据库的另一个连接,但它将是完全独立的。

因此,谈论“默认数据库”对H2数据库没有任何意义。

 类似资料:
  • 我正在使用带有Spring Boot(2.3.3版)的H2数据库和H2数据库的所有默认设置。 这是我申请的所有文件。 pom.xml

  • 在我的quarkus应用程序中有两个命名的数据源,我们称之为A和B: Quarkus.datasource.a.db-kind=Oracle Quarkus.datasource.b.db-kind=Oracle 因此,每次应用程序启动时,我都会收到这样的通知: 警告:无法确定默认数据源的数据库类型

  • 1) 首先我们回到 VS 编辑器,在“内容浏览器”里面选择“内容(Content)”: 2) 新建一个存放资源的文件夹名为“Assest”,然后在“Assest”目录下创建一个“Maps”文件夹,表示存放我们的地图。 3) 点击 “保存关卡”: 4) 点击保存之后会弹出一个窗口,我们把关卡的名字改成“NoviceMap”,并把它存放到我们新建的“Maps”文件夹下。 保存成功后“资源浏览器”就会出

  • 当我为数据库生成DDL时,我不想有任何外键。 根据< code > javax . persistence . constraint mode ,有一个默认值: 那么如何在Hibernate中设置默认值呢? 我在JPA中使用Hibernate通过Spring Boot数据。

  • > 我希望所有表名都保持小写。示例 我使用Liquibase设置数据库,它看起来像 问题 如何告诉我的表都是小写->而不是?

  • 问题内容: 我想仅使用CSS为标准window.confirm设置样式,而不使用任何其他JavaScript代码。可能吗 如果是的话,我该怎么办? 问题答案: 这不可能。浏览器使用平台的UI套件显示此窗口。它不在DOM中,在CSS或Javascript中也不可见,您无能为力。 但是,一些非常简单的jQuery代码可以解决问题。怎么样