我正在尝试运行Spring Cloud Schema Registry Server,如here所述。我希望模式在重启之间保持不变,所以我想使用MySQL。但是在应用程序启动期间我收到了以下错误:Table 'sr.schema_repository' doesn't exist
。
这是否意味着我必须自己创建所需的表?但这张桌子的结构是什么?那么当使用默认的嵌入式H2数据库时,如何自动创建所需的表?
要使用外部数据库设置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
您可以设置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,但结构非常简单,因此您可以轻松地将其调整到首选数据库。