Spring Schema Registry Server和MySQL

问题描述 投票:0回答:1

我正在尝试运行Spring Cloud Schema Registry Server,如here所述。我希望模式在重启之间保持不变,所以我想使用MySQL。但是在应用程序启动期间我收到了以下错误:Table 'sr.schema_repository' doesn't exist

这是否意味着我必须自己创建所需的表?但这张桌子的结构是什么?那么当使用默认的嵌入式H2数据库时,如何自动创建所需的表?

java mysql spring-cloud spring-cloud-stream
1个回答
0
投票

要使用外部数据库设置SpringSchemaRegistry,您需要执行以下步骤

1. Step: Add Database-Driver

作为第一步,您需要将数据库JDBC驱动程序添加到您的模块(gradle / maven)。

2. Step: Add datasource configuration to your application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost/schema-registry
    username: schema-registry
    password: schema-registry
    testWhileIdle: true
    validationQuery: SELECT 1

3. Step: Create tables

您可以设置hibernate ddl-auto,以便在每次启动时自动创建和更新表。因此,将以下内容添加到application.yml文件中。

spring:
  jpa:
    hibernate:
      ddl-auto: update

注意:当JPA实体的某些内容发生变化(或者您的命名策略)时,ddl-auto: update会自动创建表并在每次启动时更新它们。

如果您愿意,只需要一张桌子。您可以使用以下SQL脚本轻松创建它。

CREATE TABLE `schema_repository` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `definition` longtext NOT NULL,
  `format` varchar(255) NOT NULL,
  `subject` varchar(255) NOT NULL,
  `version` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

该脚本适用于MySQL,但结构非常简单,因此您可以轻松地将其调整到首选数据库。

© www.soinside.com 2019 - 2024. All rights reserved.