@Override public void run(String... args) throws Exception { if (sqlExecutor.tableExists("QRTZ_LOCKS")) { return; } DatabaseType databaseType = DataSourceHolder.currentDatabaseType(); String databaseTypeName = databaseType.name(); if (databaseType == DatabaseType.jtds_sqlserver) { databaseTypeName = DatabaseType.sqlserver.name(); } String file = "classpath*:/quartz/sql/quartz-" + databaseTypeName + "-create.sql"; Resource[] resources = new PathMatchingResourcePatternResolver().getResources(file); for (Resource resource : resources) { try (Reader reader = new InputStreamReader(resource.getInputStream())) { String str = FileUtils.reader2String(reader); List<String> sqlList = Sqls.parse(str); for (String sql : sqlList) { if (StringUtils.isEmpty(sql)) return; sqlExecutor.exec(sql); } } } } }
protected void initInstallInfo() throws SQLException { boolean tableInstall = sqlExecutor.tableExists("s_system"); database.createOrAlter("s_system") .addColumn().name("name").varchar(128).comment("系统名称").commit() .addColumn().name("major_version").alias(majorVersion).number(32).javaType(Integer.class).comment("主版本号").commit() .addColumn().name("minor_version").alias(minorVersion).number(32).javaType(Integer.class).comment("次版本号").commit() .addColumn().name("revision_version").alias(revisionVersion).number(32).javaType(Integer.class).comment("修订版").commit() .addColumn().name("snapshot").number(1).javaType(Boolean.class) .custom(column -> column.setValueConverter(new NumberValueConverter(Boolean.class))) .comment("是否快照版").commit() .addColumn().name("comment").varchar(2000).comment("系统说明").commit() .addColumn().name("website").varchar(2000).comment("系统网址").commit() .addColumn().name("framework_version").notNull().alias(frameworkVersion).clob() .custom(column -> column.setValueConverter(new JSONValueConverter(SystemVersion.FrameworkVersion.class, new ClobValueConverter()))).notNull().comment("框架版本").commit() .addColumn().name("dependencies").notNull().alias(dependencies).clob() .custom(column -> column.setValueConverter(new JSONValueConverter(SystemVersion.Dependency.class, new ClobValueConverter()))).notNull().comment("依赖详情").commit() .comment("系统信息") .custom(table -> table.setObjectWrapper(new BeanWrapper<SystemVersion>(SystemVersion::new, table))) .commit(); if (!tableInstall) { installed = null; return; } RDBTable<SystemVersion> rdbTable = database.getTable("s_system"); installed = rdbTable.createQuery().where("name", targetVersion.getName()).single(); }
@Override public TableBuilder createOrAlter(String name) { RDBTableMetaData tableMetaData = new RDBTableMetaData(); tableMetaData.setName(name); tableMetaData.setDatabaseMetaData(metaData); try { boolean tableExists; if (metaData.getParser() != null) { tableExists = metaData.getParser().tableExists(name); } else { tableExists = sqlExecutor.tableExists(name); } if (tableExists) { if (metaData.getParser() != null) { RDBTableMetaData tmp = metaData.getParser().parse(name); tmp.getColumns().forEach(tableMetaData::addColumn); } else { logger.warn("table {} exists,but tableMetaParser is null", name); } } } catch (Exception e) { } return new SimpleTableBuilder(tableMetaData, this, sqlExecutor); }
@Override public TableBuilder createOrAlter(String name) { RDBTableMetaData tableMetaData = new RDBTableMetaData(); tableMetaData.setName(name); tableMetaData.setDatabaseMetaData(metaData); try { boolean tableExists; if (metaData.getParser() != null) { tableExists = metaData.getParser().tableExists(name); } else { tableExists = sqlExecutor.tableExists(name); } if (tableExists) { if (metaData.getParser() != null) { RDBTableMetaData tmp = metaData.getParser().parse(name); tmp.getColumns().forEach(tableMetaData::addColumn); } else { logger.warn("table {} exists,but tableMetaParser is null", name); } } } catch (Exception e) { } return new SimpleTableBuilder(tableMetaData, this, sqlExecutor); }
protected void initInstallInfo() throws SQLException { boolean tableInstall = sqlExecutor.tableExists("s_system"); database.createOrAlter("s_system") .addColumn().name("name").varchar(128).comment("系统名称").commit() .addColumn().name("major_version").alias(majorVersion).number(32).javaType(Integer.class).comment("主版本号").commit() .addColumn().name("minor_version").alias(minorVersion).number(32).javaType(Integer.class).comment("次版本号").commit() .addColumn().name("revision_version").alias(revisionVersion).number(32).javaType(Integer.class).comment("修订版").commit() .addColumn().name("snapshot").number(1).javaType(Boolean.class) .custom(column -> column.setValueConverter(new NumberValueConverter(Boolean.class))) .comment("是否快照版").commit() .addColumn().name("comment").varchar(2000).comment("系统说明").commit() .addColumn().name("website").varchar(2000).comment("系统网址").commit() .addColumn().name("framework_version").notNull().alias(frameworkVersion).clob() .custom(column -> column.setValueConverter(new JSONValueConverter(SystemVersion.FrameworkVersion.class, new ClobValueConverter()))).notNull().comment("框架版本").commit() .addColumn().name("dependencies").notNull().alias(dependencies).clob() .custom(column -> column.setValueConverter(new JSONValueConverter(SystemVersion.Dependency.class, new ClobValueConverter()))).notNull().comment("依赖详情").commit() .comment("系统信息") .custom(table -> table.setObjectWrapper(new BeanWrapper<SystemVersion>(SystemVersion::new, table))) .commit(); if (!tableInstall) { installed = null; return; } RDBTable<SystemVersion> rdbTable = database.getTable("s_system"); installed = rdbTable.createQuery().where("name", targetVersion.getName()).single(); }