问题描述
我正在迁移项目表单
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.3
到
elasticsearch 1.7.3
和 grails 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