modeshape3-开始使用mysql,非jndi

modeshape3-开始使用mysql,非jndi,mysql,config,modeshape,Mysql,Config,Modeshape,请有人帮我整理一下配置,或者给我举一个不使用JNDI的MySql示例。我要 表“modeshape.content\u store”不存在 …我认为这是因为它不是自动创建模式的。我尝试过使用modeshape2属性,但没有效果。这是我的配置 { "name" : "My Repository", "monitoring" : { "enabled" : true }, "workspaces" : { "default" : "de

请有人帮我整理一下配置,或者给我举一个不使用JNDI的MySql示例。我要

表“modeshape.content\u store”不存在

…我认为这是因为它不是自动创建模式的。我尝试过使用modeshape2属性,但没有效果。这是我的配置

{
    "name" : "My Repository",
    "monitoring" : {
        "enabled" : true
    },
    "workspaces" : {
        "default" : "defaultWorkspace",
        "allowCreation" : true
    },
    "storage" : {
        "cacheName" : "Teneo Repository",
        "binaryStorage" : {
            "type" : "database",
        "driverClass" : "com.mysql.jdbc.Driver",
        "username" : "modeshape",
        "password" : "modeshape",
        "url" : "jdbc:mysql://127.0.0.1:3306/modeshape?autoReconnect=true",
        "autoGenerateSchema" : "create"
        }
    }
}

如果表不存在,ModeShape始终尝试创建该表。(ModeShape无法识别配置中的
autoGenerateSchema
字段。)

确保已授予数据库用户创建表的权限。或者,只需使用DDL手动创建表:

CREATE TABLE CONTENT_STORE (
  cid VARCHAR(255) NOT NULL,
  mime_type VARCHAR(255),
  ext_text VARCHAR(1000),
  usage INTEGER,
  usage_time TIMESTAMP,
  payload BLOB,
  primary key(cid)
)

您可以根据需要调整列的大小或类型,只要这些类型与上面列出的类型兼容。例如,在MySQL上,BLOB列的最大大小为(2^16+1)字节,但只需将其更改为(2^24+2)字节的MEDIUMBLOB或(2^32+3)字节的LONGBLOB。

刚刚快速查看了代码。如果Database.tableExists()捕获SQLException,则返回false。Database.execute()正在捕获SQLException并作为BinaryStoreException重新刷新。这就是它应该做的吗?我不能用sql创建表,因为在MySql 5.5中使用是一个保留字:(我已将此作为一个问题记录下来;请参阅。它将在即将发布的版本(3.2.0.Final)中修复)。