私は Ruby ユーザーではありませんが、コードでスキーマを定義する ActiveRecord の方法がとても気に入り、生成とクエリの両方を行うことができます。これを Java で正確に複製できないことはわかっていますが、合理的なことをしたいと考えています。
Mavenプラグインを使用して、SQLデータベースからBeanとメタデータを生成するために、QueryDSLドキュメントの次のようなものを使用しました: http://www.querydsl.com/static/querydsl/2.9.0/reference/html/ch02s08 .html#d0e1244
<plugin>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-maven-plugin</artifactId>
<version>${querydsl.version}</version>
<configuration>
<jdbcDriver>com.mysql.jdbc.Driver</jdbcDriver>
<jdbcUrl>jdbc:mysql://localhost:3306/test</jdbcUrl>
<packageName>com.example.schema</packageName>
<targetFolder>${project.basedir}/src/main/scala</targetFolder>
<exportBeans>true</exportBeans>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.16</version>
</dependency>
<dependency>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-scala</artifactId>
<version>${querydsl.version}</version>
</dependency>
</dependencies>
</plugin>
キーと外部キー制約が定義されたこれらすべての Bean とテーブルを取得したので、そのテーブルのスキーマを再作成する MySQL コマンドを生成する方法はありますか?
それが不可能な場合、ソースとスキーマを互いに対応する方法で配布するための推奨される方法は何ですか? 空の MySQL ダンプを取得し、それに応じて Bean を生成するツールを用意する必要がありますか? または、生成されたソースを空のスキーマとともに含めて MySQL にインポートする必要がありますか? 後者のオプションは、バージョンが同期されていないと問題が発生する可能性があるように思われるため、他のアイデアがあれば幸いです。