带有 micronaut-elasticsearch 插件的 Grails

问题描述

我正在迁移项目表单 extension Connection { public var userVersion: Int32 { get { return Int32(try! scalar("PRAGMA user_version") as! Int64) } //Thread 1: Fatal error: 'try!' expression unexpectedly raised an error: file is not a database (code: 26) set { try! run("PRAGMA user_version = \(newValue)" ) } } } func migrateMyData() -> Void { guard let db = self.db_myData else { return } if db.userVersion == 0 { db.userVersion = 1 db.createTable(objectType: USER_PROFILE.self) db.createTable(objectType: MASTER_DETAIL.self) db.createTable(objectType: CART_LIST.self) } if db.userVersion == 1 { db.userVersion = 2 db.createTable(objectType: COVER_LIST.self) } if db.userVersion == 2 { db.userVersion = 3 db.createTable(objectType: ITEM_LIST.self) } if db.userVersion == 3 { db.userVersion = 4 let userProfile = Table("USER_PROFILE") do { try db.run(userProfile.addColumn(Expression<String?>("ADDRESS"),defaultValue: "")) try db.run(userProfile.addColumn(Expression<String?>("USER_ID"),defaultValue: "")) try db.run(userProfile.addColumn(Expression<String?>("VIP_VALUE"),defaultValue: "")) } catch { print("addColumn error: \(error)") } } if db.userVersion == 4 { db.userVersion = 5 let userProfile = Table("USER_PROFILE") let master = Table("MASTER_DETAIL") do { try db.run(userProfile.addColumn(Expression<String?>("AGE"),defaultValue: "")) try db.run(master.addColumn(Expression<String?>("ITEM"),defaultValue: "")) } catch { print("addColumn error: \(error)") } } } grails 3.0.3elasticsearch 1.7.3grails 4.0.4

不幸的是,elasticsearch-groovy-plugin 没有得到积极维护,看来最好的选择是切换到 micronaut-elasticsearch

为了测试此选项,我创建了一个新的 elasticsearch 7.13 应用程序并添加

grails 4.0.4

compile 'io.micronaut.elasticsearch:micronaut-elasticsearch:2.3.0' 文件。不幸的是,我收到以下错误

gradle.build

我错过了什么吗?

解决方法

micronaut-elasticsearch 不是 grails-bom 的一部分。所以你必须指定依赖的版本。

compile 'io.micronaut.elasticsearch:micronaut-elasticsearch:2.3.0'

https://mvnrepository.com/artifact/io.micronaut.elasticsearch/micronaut-elasticsearch