はじめに
H2 データベースで,メモリー内にデータベースを構築するようなとき,ファイルに書いてある DDL を流したいことがあると思います。
例えば, JUnit がデータベースにアクセスするテストケースでの使用が考えられますね。
書き方
スキーマを指定する場合と,しない場合を書き記します。
スキーマを指定したいケースは, MyBatis Generator 等のツールでスキーマを限定するようなケースを考えてのものです。
スキーマを指定しない場合
jdbc:h2:mem:test;INIT=RUNSCRIPT FROM SCRIPTPATH
- SCRIPTPATH が DDL が書かれたファイルのパスです。
jdbc:h2:mem:test;INIT=RUNSCRIPT FROM '../../db/schema.sql'
スキーマを指定する場合
jdbc:h2:mem:test;INIT=CREATE SCHEMA IF NOT EXISTS SCHEMANAME\\;SET SCHEMA SCHEMANAME\\;RUNSCRIPT FROM SCRIPTPATH
- SCHEMANAME が,スキーマの名称です。
- SCRIPTPATH が DDL が書かれたファイルのパスです。
jdbc:h2:mem:test;/data;INIT=CREATE SCHEMA IF NOT EXISTS FOO\\;SET SCHEMA FOO\\;RUNSCRIPT FROM '../../db/schema.sql'