Spring Schema Registry Server和MySQL

时间:2017-11-27 09:21:32

标签: java mysql spring-cloud spring-cloud-stream

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

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

1 个答案:

答案 0 :(得分:0)

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

1。步骤:添加数据库驱动程序

首先,您需要将数据库JDBC驱动程序添加到模块中(gradle / maven)。

2。步骤:将数据源配置添加到application.yml

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

3。步骤:创建表

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

spring:
  jpa:
    hibernate:
      ddl-auto: update

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

如果您愿意,只需要一张桌子。您可以使用以下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,但结构非常简单,因此您可以轻松地将其调整到首选数据库。