瀏覽代碼

优化系统初始化逻辑

zhou-hao 7 年之前
父節點
當前提交
2a6c498029

+ 5 - 0
hsweb-starter/hsweb-spring-boot-starter/pom.xml

@@ -35,6 +35,11 @@
             <artifactId>h2</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter</artifactId>

+ 2 - 2
hsweb-starter/hsweb-spring-boot-starter/src/main/java/org/hswebframework/web/starter/init/SystemInitialize.java

@@ -73,7 +73,7 @@ public class SystemInitialize {
                 }
             }
 
-            rdbTable.createUpdate().set(targetVersion).where().sql("1=1").exec();
+            rdbTable.createUpdate().set(targetVersion).where().is("name",targetVersion.getName()).exec();
         }
     }
 
@@ -167,7 +167,7 @@ public class SystemInitialize {
             return;
         }
         RDBTable<SystemVersion> rdbTable = database.getTable("s_system");
-        installed = rdbTable.createQuery().single();
+        installed = rdbTable.createQuery().where("name",targetVersion.getName()).single();
     }
 
 

+ 8 - 0
hsweb-starter/hsweb-spring-boot-starter/src/test/java/org/hswebframework/web/starter/InstallTests.java

@@ -23,6 +23,7 @@ import org.hswebframework.ezorm.rdb.executor.AbstractJdbcSqlExecutor;
 import org.hswebframework.ezorm.rdb.executor.SqlExecutor;
 import org.hswebframework.ezorm.rdb.meta.RDBDatabaseMetaData;
 import org.hswebframework.ezorm.rdb.render.dialect.H2RDBDatabaseMetaData;
+import org.hswebframework.ezorm.rdb.render.dialect.MysqlRDBDatabaseMetaData;
 import org.hswebframework.ezorm.rdb.simple.SimpleDatabase;
 import org.hswebframework.expands.script.engine.DynamicScriptEngine;
 import org.hswebframework.expands.script.engine.DynamicScriptEngineFactory;
@@ -51,6 +52,12 @@ public class InstallTests {
 
     @Before
     public void setup() throws Exception {
+//        Class.forName("com.mysql.jdbc.Driver");
+//        connection = DriverManager.getConnection(
+//                "jdbc:mysql://localhost/test_db1?useSSL=false&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false",
+//                "root", "root");
+//
+
         Class.forName("org.h2.Driver");
         connection = DriverManager.getConnection("jdbc:h2:file:./target/data/h2db;", "sa", "");
         sqlExecutor = new AbstractJdbcSqlExecutor() {
@@ -65,6 +72,7 @@ public class InstallTests {
             }
         };
         RDBDatabaseMetaData databaseMetaData = new H2RDBDatabaseMetaData();
+//        RDBDatabaseMetaData databaseMetaData = new MysqlRDBDatabaseMetaData("MyISAM");
         database = new SimpleDatabase(databaseMetaData, sqlExecutor);
     }
 

+ 12 - 0
hsweb-starter/hsweb-spring-boot-starter/src/test/resources/hsweb-starter.js

@@ -49,6 +49,18 @@ var versions = [
 
 function install(context) {
     var database = context.database;
+    database.createOrAlter("s_user")
+        .addColumn().name("u_id").varchar(32).notNull().primaryKey().comment("uid").commit()
+        .addColumn().name("name").varchar(128).notNull().comment("姓名").commit()
+        .addColumn().name("username").varchar(128).notNull().comment("用户名").commit()
+        .addColumn().name("password").varchar(128).notNull().comment("密码").commit()
+        .addColumn().name("salt").varchar(128).notNull().comment("密码盐").commit()
+        .addColumn().name("status").number(4).notNull().comment("用户状态").commit()
+        .addColumn().name("last_login_ip").varchar(128).comment("上一次登录的ip地址").commit()
+        .addColumn().name("last_login_time").number(32).comment("上一次登录时间").commit()
+        .addColumn().name("creator_id").varchar(32).comment("创建者ID").commit()
+        .addColumn().name("create_time").number(32).notNull().comment("创建时间").commit()
+        .comment("用户表").commit();
     java.lang.System.out.println("安装了");
 }