问题描述
我开始尝试使用 JetBrains Exposed 0.28.1 和 Postgres 13。 当我尝试创建第一个表时,我得到一个 PsqlException:
ERROR: column "id" of relation "xxx" already exists. Statement(s): ALTER TABLE <schema>.xxx ADD id VARCHAR(10) PRIMARY KEY
这是表创建代码:
open class StringIdTable(
schema: String,name: String,columnName: String = "id",columnLength: Int = 10,) : IdTable<String>("$schema.$name") {
override val id: Column<EntityID<String>> =
varchar(columnName,columnLength).entityId()
override val primaryKey by lazy { super.primaryKey ?: PrimaryKey(id) }
}
const val DB_NAME = "db"
const val SCHEMA_NAME = "schema"
val SCHEMA = Schema(name = SCHEMA_NAME,authorization = "postgres")
object MyTable : StringIdTable(SCHEMA_NAME,"xxx") {
//object MyTable : Table("xxx") {
// val id = varchar(name = "id",length = 10)
val label = varchar(name = "title",length = 255)
val order = text("order")
}
使用 Exposed 的方法调用创建:SchemaUtils.createMissingTablesAndColumns(MyTable)
如果我使用注释行将表定义为“简单”Table
而不是 StringIdTable
,我也不例外。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)