我正在尝试按照描述运行 Spring Cloud Schema 注册表服务器 here 。我希望模式在重新启动之间保持不变,因此我想使用 MySQL 来实现这一点。但在应用程序启动期间出现以下错误:表“sr.schema_repository”不存在
。
这是否意味着我必须自己创建所需的表?但是这张表的结构是怎样的呢?为什么当使用默认的嵌入式 H2 数据库时会自动创建所需的表?
最佳答案
要使用外部数据库设置 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。步骤:创建表
您可以设置 hibernate ddl-auto 以便在每次启动时自动创建和更新表。因此,将以下内容添加到您的 application.yml 文件中。
spring:
jpa:
hibernate:
ddl-auto: update
注意:ddl-auto: update
将自动创建表,并在每次启动时更新它们,当 JPA 实体发生变化时(或者可能是您的命名策略)。
如果您愿意,只需一张 table 。您可以使用以下 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,但结构非常简单,因此您可以轻松地将其适应您喜欢的数据库。
关于java - Spring Schema 注册表服务器和 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47507447/