1.本人grails 版本3.1.5,JDK版本1.8.0_92
2.准备工作 于build.gradle添加插件依赖
1在dependencies
增加 compile 'org.grails.plugins:db-reverse-engineer:4.0.0' 以及数据库启动
2在buildscript下的dependencies
增加 classpath 'org.grails.plugins:db-reverse-engineer:4.0.0'
2 配置MySQL 数据开放环境
dataSource:...
dbCreate: none
dialect: org.hibernate.dialect.MySQL5InnoDBDialect
driverClassName: com.mysql.jdbc.Driver
password: reveng
url: jdbc:mysql://localhost/reveng
username: reveng
...}
3准备数据库(已有可忽略)
CREATE TABLE visit ( id bigint(20) NOT NULL AUTO_INCREMENT, library_id bigint(20) NOT NULL, person varchar(255) NOT NULL, visit_date datetime NOT NULL, PRIMARY KEY (id), KEY FK6B04D4BE8E8E739 (library_id), CONSTRAINT FK6B04D4BE8E8E739 FOREIGN KEY (library_id) REFERENCES library (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE other ( username varchar(255) NOT NULL, nonstandard_version_name bigint(20) NOT NULL, PRIMARY KEY (username)) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE user ( id bigint(20) NOT NULL AUTO_INCREMENT, version bigint(20) NOT NULL, account_expired bit(1) NOT NULL, account_locked bit(1) NOT NULL, enabled bit(1) NOT NULL, password varchar(255) NOT NULL, password_expired bit(1) NOT NULL, username varchar(255) NOT NULL, PRIMARY KEY (id), UNIQUE KEY username (username)) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE role ( id bigint(20) NOT NULL AUTO_INCREMENT, version bigint(20) NOT NULL, authority varchar(255) NOT NULL, PRIMARY KEY (id), UNIQUE KEY authority (authority)) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE user_role ( role_id bigint(20) NOT NULL, user_id bigint(20) NOT NULL, date_updated datetime NOT NULL, PRIMARY KEY (role_id,user_id), KEY FK143BF46A667AF6FB (role_id), KEY FK143BF46ABA5BADB (user_id), CONSTRAINT FK143BF46A667AF6FB FOREIGN KEY (role_id) REFERENCES role (id), CONSTRAINT FK143BF46ABA5BADB FOREIGN KEY (user_id) REFERENCES user (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE thing ( thing_id bigint(20) NOT NULL AUTO_INCREMENT, version bigint(20) NOT NULL, email varchar(255) NOT NULL, float_value float NOT NULL, name varchar(123) DEFAULT NULL, PRIMARY KEY (thing_id), UNIQUE KEY email (email)) ENGINE=InnoDB DEFAULT CHARSET=utf8; 4
添加这些配置选项在grails-app/conf/application.groovy
grails.plugin.reveng.packageName ='com.revengtest'//逆向生成域类的包名
grails.plugin.reveng.versionColumns =[other:'nonstandard_version_name']//version字段
grails.plugin.reveng.manyToManyTables =['user_role']//多对多的表
grails.plugin.reveng.manyToManyBelongsTos =['user_role':'role']//多对多belongto 的配置
5 grails
dbReverseEngineer 执行命令
6 检查 生成的域类
英文原文地址http://grails-plugins.github.io/grails-db-reverse-engineer/grails3v4/index.html