Can I have H2 autocreate a schema in an in-memory database?

后端 未结 5 1992
逝去的感伤
逝去的感伤 2020-11-30 20:36

(I\'ve already seen the H2 database In memory - Init schema via Spring/Hibernate question; it is not applicable here.)

I\'d like to know if there\'s a setting in H2

5条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-11-30 20:59

    Yes, H2 supports executing SQL statements when connecting. You could run a script, or just a statement or two:

    String url = "jdbc:h2:mem:test;" + 
                 "INIT=CREATE SCHEMA IF NOT EXISTS TEST"
    String url = "jdbc:h2:mem:test;" + 
                 "INIT=CREATE SCHEMA IF NOT EXISTS TEST\\;" + 
                      "SET SCHEMA TEST";
    String url = "jdbc:h2:mem;" + 
                 "INIT=RUNSCRIPT FROM '~/create.sql'\\;" + 
                      "RUNSCRIPT FROM '~/populate.sql'";
    

    Please note the double backslash (\\) is only required within Java. The backslash(es) before ; within the INIT is required.

提交回复
热议问题