我正在尝试按照here所述运行Spring Cloud Schema Registry Server。我希望模式在重启之间保持不变,所以我想使用MySQL。但是在应用程序启动期间出现以下错误:Table 'sr.schema_repository' doesn't exist
。
这是否意味着我必须自己创建所需的表?但这张桌子的结构是什么?那么当使用默认的嵌入式H2数据库时,如何自动创建所需的表?
答案 0 :(得分:0)
要使用外部数据库设置SpringSchemaRegistry,您需要执行以下步骤
首先,您需要将数据库JDBC驱动程序添加到模块中(gradle / maven)。
application.yml
spring:
datasource:
url: jdbc:mysql://localhost/schema-registry
username: schema-registry
password: schema-registry
testWhileIdle: true
validationQuery: SELECT 1
您可以设置休眠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,但结构非常简单,因此您可以轻松地将其调整到首选数据库。