A few changes:
[cfb.git] / prod / net / jaekl / cfb / CFB.java
index f229ce1d7eae767674bfdb268ec9f377a55c4767..924d33182d28c4824207b6fde0712d4362d6d6b7 100644 (file)
@@ -47,6 +47,7 @@ public class CFB {
        String m_user;  // db user
        String m_pass;  // db password
        String m_buildNum; // build number (version)
+       boolean m_removeSchema; // purge DB schema
        
        CFB(Locale locale) {
                m_driver = new PostgresqlDriver();
@@ -62,6 +63,7 @@ public class CFB {
                m_pass = "";
                m_user = "user";
                m_buildNum = null;
+               m_removeSchema = false;
        }
        
        Options createOptions() {
@@ -72,6 +74,7 @@ public class CFB {
                opt.addOption("h", "host",   true, "DB hostname");
                opt.addOption("n", "number", true, "Build number (version)");
                opt.addOption("p", "pass",   true, "DB password");
+               opt.addOption("r", "remove", false, "Remove database schema (drop all data)");
                opt.addOption("t", "port",   true, "DB port");
                opt.addOption("u", "user",   true, "DB username");
                
@@ -98,6 +101,7 @@ public class CFB {
                        if (line.hasOption("p")) {
                                m_pass = line.getOptionValue("p");
                        }
+                       m_removeSchema = line.hasOption("r");
                        if (line.hasOption("t")) {
                                m_port = Integer.parseInt(line.getOptionValue("t"));
                        }
@@ -160,6 +164,11 @@ public class CFB {
                
                try (Connection con = m_driver.connect(m_host, m_port, m_dbName, m_user, m_pass)) {
                        m_schema.setMessageMap(messageMap);
+                       
+                       if (m_removeSchema) {
+                               m_schema.purge(con);
+                               return;
+                       }
                        m_schema.ensureDbInitialized(con);      
                }
                catch (SQLException exc) {