私は任意のフォルダでこれをやろうとしています:
java -cp .;e:\tools\h2\bin\* org.h2.tools.RunScript -url myDBURI -script CreateDatabase.sql
CreateDatabase.sql は現在のフォルダーにあります。
その中に私は持っています:
runscript from 'classpath:/DropSchemas.sql';
私も試してみました
runscript from 'DropSchemas.sql';
runscript from './DropSchemas.sql';
これを行うと、DropSchemas.sql からファイルが見つからないというエラーが表示されます。
スレッド "main" org.h2.jdbc.JdbcSQLException: IO Exception: "java.io.FileNotFoundException: resource /DropSchemas.sql"; で例外が発生しました。"classpath:/DropSchemas.sql"; SQL ステートメント:
runscript from 'classpath:/DropSchemas.sql' [90031-172]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:158)
at org.h2.message.DbException.convertIOException(DbException.java:315)
at org.h2.command.dml.ScriptBase.openInput(ScriptBase.java:168)
at org.h2.command.dml.RunScriptCommand.update(RunScriptCommand.java:45)
at org.h2.command.CommandContainer.update(CommandContainer.java:79)
at org.h2.command.Command.executeUpdate(Command.java:235)
at org.h2.server.TcpServerThread.process(TcpServerThread.java:335)
at org.h2.server.TcpServerThread.run(TcpServerThread.java:151)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: resource /DropSchemas.sql
at org.h2.store.fs.FilePathDisk.newInputStream(FilePathDisk.java:298)
at org.h2.store.fs.FileUtils.newInputStream(FileUtils.java:206)
at org.h2.command.dml.ScriptBase.openInput(ScriptBase.java:166)
... 6 more
at org.h2.engine.SessionRemote.done(SessionRemote.java:579)
at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:186)
at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:180)
at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:155)
at org.h2.tools.RunScript.process(RunScript.java:255)
at org.h2.tools.RunScript.process(RunScript.java:188)
at org.h2.tools.RunScript.process(RunScript.java:319)
at org.h2.tools.RunScript.runTool(RunScript.java:142)
at org.h2.tools.RunScript.main(RunScript.java:69)
dropschemas.sql への絶対パスを指定すると機能しますが、それはスクリプトを作成する良い方法ではありません。
移植可能な方法で他のスクリプトを実行するマスター スクリプトを作成するにはどうすればよいですか?
ありがとう
マイケル