aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/iciql/Db.java6
-rw-r--r--src/com/iciql/TableDefinition.java3
2 files changed, 9 insertions, 0 deletions
diff --git a/src/com/iciql/Db.java b/src/com/iciql/Db.java
index 16cf386..6187aba 100644
--- a/src/com/iciql/Db.java
+++ b/src/com/iciql/Db.java
@@ -279,6 +279,8 @@ public class Db {
}
// remove this model class from the table definition cache
classMap.remove(modelClass);
+ // remove this model class from the upgrade checked cache
+ upgradeChecked.remove(modelClass);
return rc;
}
@@ -395,6 +397,10 @@ public class Db {
}
return def;
}
+
+ <T> boolean hasCreated(Class<T> clazz) {
+ return upgradeChecked.contains(clazz);
+ }
public synchronized void setDbUpgrader(DbUpgrader upgrader) {
if (!upgrader.getClass().isAnnotationPresent(IQVersion.class)) {
diff --git a/src/com/iciql/TableDefinition.java b/src/com/iciql/TableDefinition.java
index 1d9a98a..b6a670b 100644
--- a/src/com/iciql/TableDefinition.java
+++ b/src/com/iciql/TableDefinition.java
@@ -650,6 +650,9 @@ public class TableDefinition<T> {
db.upgradeTable(this);
return this;
}
+ if (db.hasCreated(clazz)) {
+ return this;
+ }
SQLStatement stat = new SQLStatement(db);
db.getDialect().prepareCreateTable(stat, this);
IciqlLogger.create(stat.getSQL());