Ralasafe项目,如何修改(自定义)schemas名称.
这里演示把业务schema改为"mj2013",Ralasafe schema改为"zh_ralasafe2013"
1. 在部署时修改” demo-mysql(zh).sql”脚本文件,修改后我会把它另存一份(比如: mj2013-mysql(zh).sql).这样到别的机器上部署就可以直接复制了.
脚本内容需要修改2处:
修改21-22,689-690行:
CREATE DATABASE IF NOT EXISTS zh_mydemo;
USE zh_mydemo;
为:
CREATE DATABASE IF NOT EXISTS mj2013;
USE mj2013;
修改296-297行:
CREATE DATABASE IF NOT EXISTS zh_ralasafe;
USE zh_ralasafe;
为:
CREATE DATABASE IF NOT EXISTS zh_ralasafe2013;
USE zh_ralasafe2013;
2.工程代码需要修改3处:
A. 连接业务schema, 文件”app-ds.properties”第2行
jdbcUrl=jdbc:mysql://localhost/ zh_mydemo?useUnicode=true
改为:
jdbcUrl=jdbc:mysql://localhost/mj2013?useUnicode=true
B. 连接ralasafe schema, 文件” ralasafe-db.properties”第2行
jdbcUrl=jdbc:mysql://localhost/zh_ralasafe?useUnicode=true
改为:
jdbcUrl=jdbc:mysql://localhost/zh_ralasafe2013?useUnicode=true
C.数据源配置文件” usermetadata.xml” 第4行
<datasource name="app"configFile="app-ds.properties" schemas="zh_mydemo, zh_ralasafe "/>
改为:
<datasource name="app"configFile="app-ds.properties" schemas="mj2013,zh_ralasafe2013"/>
常见错误:
当出现类似如下错误时:
HTTP Status 500 - com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:Unknown database 'zh_ralasafe201'
请核对文件”ralasafe-db.properties”是否修改正确.
如果应该可以出现登录界面,当点”登录”时,出现现类似如下错误时:
HTTP Status 500 -com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown database 'mj201'
请核对文件”app-ds.properties”是否修改正确.
当上面这些错误都被你改正后你有可能还遇到另一个错误:
LoginName and passwordnot matched
如果你100%确定输入的用户名正确(用户名就在登录界面的下面,而密码根本不用输,这怎么可能错误嘛)!那我几乎可以肯定错误的原因是,在修改数据库脚本时,你只修改了21-22行而漏掉了689-690行.
漏掉了USEzh_mydemo;这条语句直接导致了下面的:
CREATE ALGORITHM=UNDEFINEDDEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `userview` AS select`u`.`id` AS `id`,`u`.`loginName` AS `loginName`,`u`.`name` AS`name`,`u`.`password` AS `password`,`u`.`companyId` AS`companyId`,`u`.`departmentId` AS `departmentId`,`u`.`isManager` AS`isManager`,`u`.`hireDate` AS `hireDate`,`c`.`companyLevel` AS`companyLevel`,`c`.`name` AS `companyName` from (`demouser` `u` join `company``c`) where (`u`.`companyId` = `c`.`id`);
根本就没有在新建的数据库中执行,所以`userview`就为空,用户验证当然无法通过.