Corrections to stmt ordering for using diff schema
[dmaap/dbcapi.git] / src / main / java / org / onap / dmaap / dbcapi / database / LoadSchema.java
index 6e64c4a..2c52b0d 100644 (file)
@@ -55,19 +55,38 @@ public class LoadSchema     {
                Connection c = null;
                Statement stmt = null;
                InputStream is = null;
-               try {
+               try { 
                        c = cf.get(true);
                        stmt = c.createStatement();
+                       
+                       // this sets the PG search_path to a consistent schema, otherwise sometimes
+                       // we get public, and sometimes we get dmaap_admin
+                       String cmd = String.format( "SET search_path to %s;", cf.getSchema());
+                       try {
+                               stmt.execute(cmd);
+                               logger.info("SCHEMA: " + cmd);
+                       } catch (SQLException sqle) {
+                                       throw sqle;
+                       }
+                       
+                       
+                       // determine if an upgrade is needed
                        int newver = -1;
                        try {
                                newver = getVer(stmt);
                        } catch (Exception e) {}
                        logger.info("Database schema currently at version " + newver++);
+                       
+
+
                        while ((is = LoadSchema.class.getClassLoader().getResourceAsStream("schema_" + newver + ".sql")) != null) {
                                logger.info("Upgrading database schema to version " + newver);
                                BufferedReader br = new BufferedReader(new InputStreamReader(is));
                                String s;
                                String sofar = null;
+                               
+
+                               
                                while ((s = br.readLine()) != null) {
                                        logger.info("SCHEMA: " + s);
                                        s = s.trim();