Commit b27f2c5c authored by ligang's avatar ligang
Browse files

update create and upgrade function

parent 62a21d9e
Loading
Loading
Loading
Loading
+22 −8
Original line number Diff line number Diff line
@@ -30,12 +30,17 @@ public class EschedulerManager {
    UpgradeDao upgradeDao = UpgradeDao.getInstance();

    public void initEscheduler() {
        // Determines whether the escheduler table structure has been init
        if(upgradeDao.isExistsTable("t_escheduler_version") || upgradeDao.isExistsTable("t_escheduler_queue")) {
            logger.info("The database has been initialized. Skip the initialization step");
            return;
        }
        this.initEschedulerSchema();
    }

    public void initEschedulerSchema() {

        logger.info("Start initializing the ark manager mysql table structure");
        logger.info("Start initializing the escheduler manager mysql table structure");
        upgradeDao.initEschedulerSchema();
    }

@@ -52,15 +57,20 @@ public class EschedulerManager {
        }else {

            String version = "";
            // The target version of the upgrade
            String schemaVersion = "";
            for(String schemaDir : schemaList) {
            // Gets the version of the current system
            if (upgradeDao.isExistsTable("t_escheduler_version")) {
                version = upgradeDao.getCurrentVersion();
                }else {
            }else if(upgradeDao.isExistsColumn("t_escheduler_queue","create_time")){
                version = "1.0.1";
            }else if(upgradeDao.isExistsTable("t_escheduler_queue")){
                version = "1.0.0";
            }else{
                logger.error("Unable to determine current software version, so cannot upgrade");
            }
            // The target version of the upgrade
            String schemaVersion = "";
            for(String schemaDir : schemaList) {


                schemaVersion = schemaDir.split("_")[0];
                if(SchemaUtils.isAGreatVersion(schemaVersion , version)) {
@@ -70,7 +80,11 @@ public class EschedulerManager {

                    logger.info("Begin upgrading escheduler's mysql table structure");
                    upgradeDao.upgradeEscheduler(schemaDir);

                    if(SchemaUtils.isAGreatVersion(version,"1.0.1")){
                        version = upgradeDao.getCurrentVersion();
                    }else {
                        version = schemaVersion;
                    }
                }

            }
+32 −1
Original line number Diff line number Diff line
@@ -122,7 +122,11 @@ public class UpgradeDao extends AbstractBaseDao {

    }


    /**
     * Determines whether a table exists
     * @param tableName
     * @return
     */
    public boolean isExistsTable(String tableName) {
        Connection conn = null;
        try {
@@ -144,6 +148,33 @@ public class UpgradeDao extends AbstractBaseDao {

    }

    /**
     * Determines whether a field exists in the specified table
     * @param tableName
     * @param columnName
     * @return
     */
    public boolean isExistsColumn(String tableName,String columnName) {
        Connection conn = null;
        try {
            conn = ConnectionFactory.getDataSource().getConnection();
            ResultSet rs = conn.getMetaData().getColumns(null,null,tableName,columnName);
            if (rs.next()) {
                return true;
            } else {
                return false;
            }

        } catch (SQLException e) {
            logger.error(e.getMessage(),e);
            throw new RuntimeException(e.getMessage(),e);
        } finally {
            MysqlUtil.realeaseResource(null, null, conn);

        }

    }


    public String getCurrentVersion() {
        String sql = String.format("select version from %s",T_VERSION_NAME);
+0 −1
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ public class CreateEscheduler {
	private static final Logger logger = LoggerFactory.getLogger(CreateEscheduler.class);

	public static void main(String[] args) {
		Thread.currentThread().setName("manager-CreateEscheduler");
		EschedulerManager eschedulerManager = new EschedulerManager();
		eschedulerManager.initEscheduler();
		logger.info("init escheduler finished");
+1 −1
Original line number Diff line number Diff line
INSERT INTO `t_escheduler_version` (`version`) VALUES ('1.0.0');
 No newline at end of file
INSERT INTO `t_escheduler_version` (`version`) VALUES ('1.0.2');
 No newline at end of file