You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2019/02/12 17:06:04 UTC
svn commit: r1853457 - in /jackrabbit/oak/branches/1.10: ./
oak-run/src/main/java/org/apache/jackrabbit/oak/run/
oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/
Author: reschke
Date: Tue Feb 12 17:06:03 2019
New Revision: 1853457
URL: http://svn.apache.org/viewvc?rev=1853457&view=rev
Log:
OAK-8043: RDB: expose DDL generation functionality in oak-run (ported to 1.10)
Added:
jackrabbit/oak/branches/1.10/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RDBDDLDumpCommand.java
- copied unchanged from r1853433, jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RDBDDLDumpCommand.java
Modified:
jackrabbit/oak/branches/1.10/ (props changed)
jackrabbit/oak/branches/1.10/oak-run/src/main/java/org/apache/jackrabbit/oak/run/AvailableModes.java
jackrabbit/oak/branches/1.10/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBHelper.java
Propchange: jackrabbit/oak/branches/1.10/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb 12 17:06:03 2019
@@ -1,3 +1,3 @@
/jackrabbit/oak/branches/1.0:1665962
-/jackrabbit/oak/trunk:1851236,1851253,1851451,1852052,1852084,1852451,1852492-1852493,1852920,1853434-1853435
+/jackrabbit/oak/trunk:1851236,1851253,1851451,1852052,1852084,1852451,1852492-1852493,1852920,1853393,1853433
/jackrabbit/trunk:1345480
Modified: jackrabbit/oak/branches/1.10/oak-run/src/main/java/org/apache/jackrabbit/oak/run/AvailableModes.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-run/src/main/java/org/apache/jackrabbit/oak/run/AvailableModes.java?rev=1853457&r1=1853456&r2=1853457&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-run/src/main/java/org/apache/jackrabbit/oak/run/AvailableModes.java (original)
+++ jackrabbit/oak/branches/1.10/oak-run/src/main/java/org/apache/jackrabbit/oak/run/AvailableModes.java Tue Feb 12 17:06:03 2019
@@ -44,6 +44,7 @@ public final class AvailableModes {
.put("history", new HistoryCommand())
.put(JsonIndexCommand.INDEX, new JsonIndexCommand())
.put(PersistentCacheCommand.PERSISTENTCACHE, new PersistentCacheCommand())
+ .put("rdbddldump", new RDBDDLDumpCommand())
.put("revisions", new RevisionsCommand())
.put("recovery", new RecoveryCommand())
.put("repair", new RepairCommand())
Modified: jackrabbit/oak/branches/1.10/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBHelper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBHelper.java?rev=1853457&r1=1853456&r2=1853457&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBHelper.java (original)
+++ jackrabbit/oak/branches/1.10/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBHelper.java Tue Feb 12 17:06:03 2019
@@ -16,18 +16,21 @@
*/
package org.apache.jackrabbit.oak.plugins.document.rdb;
+import java.util.Arrays;
+
/**
* Convenience class that dumps the table creation statements for various
* database types.
* <p>
* Run with:
+ *
* <pre>
* java -cp oak-run-<i>version</i>.jar org.apache.jackrabbit.oak.plugins.document.rdb.RDBHelper
* </pre>
*/
public class RDBHelper {
- private static String[] databases = { "Apache Derby", "DB2", "H2", "Microsoft SQL Server", "MySQL", "Oracle", "PostgreSQL",
+ private static String[] DATABASES = { "Apache Derby", "DB2", "H2", "Microsoft SQL Server", "MySQL", "Oracle", "PostgreSQL",
"default" };
public static void main(String[] args) {
@@ -37,31 +40,64 @@ public class RDBHelper {
int upgradeTo = defaultOpts.getUpgradeToSchema();
System.out.println("Table Creation Statements for RDBBlobStore and RDBDocumentStore");
System.out.println("RDBDocumentStore initial version: " + initial + ", with modifications up to version: " + upgradeTo);
+ System.out.println(
+ "(use system properties org.apache.jackrabbit.oak.plugins.document.rdb.RDBOptions.INITIALSCHEMA and org.apache.jackrabbit.oak.plugins.document.rdb.RDBOptions.UPGRADETOSCHEMA to specify initial DB schema, and schema to upgrade to)");
+ System.out.println();
- for (String database : databases) {
- System.out.println(database);
- System.out.println();
+ for (String database : DATABASES) {
+ internalDump(database, initial, upgradeTo);
+ }
+ }
- RDBDocumentStoreDB ddb = RDBDocumentStoreDB.getValue(database);
- RDBBlobStoreDB bdb = RDBBlobStoreDB.getValue(database);
+ public static String getSupportedDatabases() {
+ return Arrays.asList(DATABASES).toString();
+ }
- for (String table : RDBDocumentStore.getTableNames()) {
- System.out.println(" " + ddb.getTableCreationStatement(table, defaultOpts.getInitialSchema()));
- for (String s : ddb.getIndexCreationStatements(table, defaultOpts.getInitialSchema())) {
- System.out.println(" " + s);
- }
- for (int level = initial + 1; level <= upgradeTo; level++) {
- for (String statement : ddb.getTableUpgradeStatements(table, level)) {
- System.out.println(" " + statement);
- }
- }
- }
- System.out.println();
+ public static void dump(String database, Integer initial, Integer upgrade) {
+ RDBOptions defaultOpts = new RDBOptions();
+
+ if (database == null) {
+ internalDump(initial == null ? defaultOpts.getInitialSchema() : initial,
+ upgrade == null ? defaultOpts.getUpgradeToSchema() : upgrade);
+ } else {
+ internalDump(database, initial == null ? defaultOpts.getInitialSchema() : initial,
+ upgrade == null ? defaultOpts.getUpgradeToSchema() : upgrade);
+ }
+ }
- System.out.println(" " + bdb.getMetaTableCreationStatement("DATASTORE_META"));
- System.out.println(" " + bdb.getDataTableCreationStatement("DATASTORE_DATA"));
+ private static void internalDump(int initial, int upgradeTo) {
+ for (String database : DATABASES) {
+ internalDump(database, initial, upgradeTo);
System.out.println();
+ }
+ }
+
+ private static void internalDump(String database, int initial, int upgradeTo) {
+ System.out.println("-- " + database);
+
+ RDBDocumentStoreDB ddb = RDBDocumentStoreDB.getValue(database);
+ RDBBlobStoreDB bdb = RDBBlobStoreDB.getValue(database);
+
+ for (String table : RDBDocumentStore.getTableNames()) {
System.out.println();
+ System.out.println(" -- creating table " + table + " for schema version " + initial);
+ System.out.println(" " + ddb.getTableCreationStatement(table, initial));
+ for (String s : ddb.getIndexCreationStatements(table, initial)) {
+ System.out.println(" " + s);
+ }
+ for (int level = initial + 1; level <= upgradeTo; level++) {
+ System.out.println(" -- upgrading table " + table + " to schema version " + level);
+ for (String statement : ddb.getTableUpgradeStatements(table, level)) {
+ System.out.println(" " + statement);
+ }
+ }
}
+ System.out.println();
+
+ System.out.println(" -- creating blob store tables");
+ System.out.println(" " + bdb.getMetaTableCreationStatement("DATASTORE_META"));
+ System.out.println(" " + bdb.getDataTableCreationStatement("DATASTORE_DATA"));
+ System.out.println();
+ System.out.println();
}
}