Usage: Just replace your h2 jar file with this version and launch your app. If your app connects to an old database, it will be converted automatically to a page store version. Apart from that, it will act like the default H2 version.
See the class comment above for more options. Christian Peter On Jun 9, 9:55 pm, Christian Peter <[email protected]> wrote: > Hi list, > > as a H2 developer and user myself, I was unhappy about the situation, > that one can't open a non page store database with version 1.2. Thomas > wrote a little tool for converting the database, but I think the tool > lacks some important things: > > - Doesn't care about connect parameters (like split:) > - The old version (h2-1.2.127.jar) must be shipped or the tool must > download it > - The users must include the code in their software and customize it > (no drop in replacement) > > I respect Thomas decision to drop the non page store format, because > he has reasonable arguments for doing that. But I know at least two > companies which are unhappy about the current situation. > > So I decided to write my own tool. Of course the database must be > converted, so it internally uses "script to" and "runscript from". But > the main point is, that the last non page store version (1.2.128) is > integrated in the new h2 versions relocated as a new package > (org.h2.upgrade.v1_1_to_v1_2). > > /** > * Class org.h2.upgrade.v1_1_to_v1_2.Migrate > * > * Class to convert a 1.1 DB (non page store) to a 1.2 DB (page store) > format. > * Conversion is done via "script to" and "runscript from" > * > * Features: > * - Every database opened will be converted on the fly, by calling > * > org.h2.upgrade.v1_1_to_v1_2.Migrate.convertToPageStoreIfNeeded(url, > info) > * from org.h2.Driver.connect(url, info) > * - Conversion can be customized via > * public static void > org.h2.upgrade.v1_1_to_v1_2.Migrate.initConversion( > * PrintStream outputStream, the stream to print info messages > * PrintStream errorStream, the stream to print error messages > * boolean scriptInDbDir true if the temporary conversion > script should be placed > * in the db dir rather than the > default tmp dir > * ) > * - To get information, if a conversion is needed, the function > * public static boolean > org.h2.upgrade.v1_1_to_v1_2.Migrate.mustBeConverted(String url, > Properties info) > * can be used. The parameters are the same as for a Driver connect. > * - To convert before connecting, the function > * public static void > org.h2.upgrade.v1_1_to_v1_2.Migrate.convertToPageStoreIfNeeded(String > url, Properties info) > * can be used. The parameters are the same as for a Driver connect. > * - To get information, whether the conversion was sucessfully, use > * public static boolean > org.h2.upgrade.v1_1_to_v1_2.Migrate.wasSuccessful() > * afterwards. > * > */ > > The files are located here: > > http://inputsys.de/h2/h2mig-1.2.137.jar <= Every version will get a > new filenamehttp://inputsys.de/h2/h2mig-latest.jar <= Points to the > latest > versionhttp://inputsys.de/h2/Migrate.java <= Sourcecode of the > main conversion class > > This works for me, but of course it may not work for you. So please > give me feedback! > > Regards > > Christian Peter -- You received this message because you are subscribed to the Google Groups "H2 Database" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/h2-database?hl=en.
