saiku数据库的表和用户默认创建是在启动项目的时候,通过初始化 saiku-beans.xml 中的 h2database 这个 bean
执行org.saiku.service.Database类的init方法来初始化数据表和默认用户的。
具体修改如下:
1/修改web.xml 中 数据连接配置信息
将以下代码
替换为:
2/修改saiku-beans.xml中h2database配置信息
将以下代码
替换为:
3/修改Database中获取的数据源为mysql
将以下代码
替换为:
4/因为h2建表sql和mysql的还是有差异的,所以将创建表和用户信息的代码替换如下:
mysql数据表和用户的创建代码为:
以上的信息修改完毕后,在本地mysql创建url中指定的database->saikuBase,此时db中无任何表
运行saiku项目成功后,刷新db,可以看见db中多出了三张表user/user_roles/log,说明初始化表和默认数据已经成功。
但是,此时只是创建了表结构和默认的登陆账户,并没有修改登录的用户认证数据源。
当我们使用admin登陆时还是会访问到jdbc中配置的h2数据库数据源。
其实这时候还是通过访问h2内嵌数据库的db文件登陆的,在管理端新建的用户也会保存在h2数据源中,mysql数据源中查询不到新建的用户
所以,接下来要修改认证数据源为本地的mysql
5/修改用户认证数据源
将 bean id 为 datasource 的 数据源的配置信息改为我们本地mysql的配置信息,重新部署服务并启动
这时,我们在管理端创建一个用户saiku,点击保存。
查看本地mysql数据库的user表,能看见saiku已经存在user表中了,并且使用saiku用户登录也能登录成功。
将*security-jdbc.xml 中的
替换为:
至此就完成了h2数据库迁移到本地mysql的操作了
saiku - 将saiku自带的H2嵌入式数据库迁移到本地mysql数据库
原文:http://www.cnblogs.com/avivaye/p/4881106.html