diff --git a/.gitignore b/.gitignore
index 458c8f8..d6fdeb3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
/target/
.classpath
\.settings/
+
+/bin
diff --git a/pom.xml b/pom.xml
index 7213b62..1f694b4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
de.kreth
databasedefinition
- 0.0.6-SNAPSHOT
+ 0.0.6
DatabaseDefinition
Database creation and definition framework
diff --git a/src/main/java/de/kreth/dbmanager/DbManager.java b/src/main/java/de/kreth/dbmanager/DbManager.java
index ae7d454..879ec32 100644
--- a/src/main/java/de/kreth/dbmanager/DbManager.java
+++ b/src/main/java/de/kreth/dbmanager/DbManager.java
@@ -164,7 +164,7 @@ public class DbManager {
}
}
- public static String createSqlAddColumns(TableDefinition current, Collection columnsToAdd) {
+ public static String createSqlAddColumns(TableDefinition current, ColumnDefinition... columnsToAdd) {
StringBuilder sql = new StringBuilder();
sql.append("ALTER TABLE ").append(current.getTableName());
@@ -187,4 +187,28 @@ public class DbManager {
sql.append(";");
return sql.toString();
}
+
+ public static String createSqlDropColumns(TableDefinition current, ColumnDefinition... columnsToDrop) {
+
+ StringBuilder sql = new StringBuilder();
+ sql.append("ALTER TABLE ").append(current.getTableName());
+
+ boolean first = true;
+ for (ColumnDefinition col : columnsToDrop) {
+
+ if (!first) {
+ sql.append(",");
+ }
+
+ first = false;
+ sql.append("\n\tDROP COLUMN ").append(col.getColumnName()).append(" ");
+ appendType(sql, col);
+
+ if (col.getColumnParameters() != null && !col.getColumnParameters().isEmpty()) {
+ sql.append(" ").append(col.getColumnParameters());
+ }
+ }
+ sql.append(";");
+ return sql.toString();
+ }
}
diff --git a/src/test/java/de/kreth/dbmanager/DbManagerAddColumnTest.java b/src/test/java/de/kreth/dbmanager/DbManagerAddColumnTest.java
index b9bf914..fc3d830 100644
--- a/src/test/java/de/kreth/dbmanager/DbManagerAddColumnTest.java
+++ b/src/test/java/de/kreth/dbmanager/DbManagerAddColumnTest.java
@@ -19,9 +19,7 @@ public class DbManagerAddColumnTest {
TableDefinition def = new TableDefinition("testtable", new ArrayList());
- List columns = new ArrayList();
- columns.add(new ColumnDefinition(DataType.DATETIME, "deleted", " DEFAULT null"));
- String sql = DbManager.createSqlAddColumns(def, columns);
+ String sql = DbManager.createSqlAddColumns(def, new ColumnDefinition(DataType.DATETIME, "deleted", " DEFAULT null"));
assertEquals("ALTER TABLE testtable\n\tADD COLUMN deleted DATETIME DEFAULT null;", sql);
}
@@ -33,7 +31,7 @@ public class DbManagerAddColumnTest {
List columns = new ArrayList();
columns.add(new ColumnDefinition(DataType.DATETIME, "deleted", " DEFAULT null"));
columns.add(new ColumnDefinition(DataType.VARCHAR25, "theType"));
- String sql = DbManager.createSqlAddColumns(def, columns);
+ String sql = DbManager.createSqlAddColumns(def, columns.toArray(new ColumnDefinition[]{}));
assertEquals(
"ALTER TABLE testtable\n\tADD COLUMN deleted DATETIME DEFAULT null,\n\tADD COLUMN theType VARCHAR(25);",
sql);