Package com.carbonfive.db.migration

Source Code of com.carbonfive.db.migration.SQLScriptMigration

package com.carbonfive.db.migration;

import com.carbonfive.db.jdbc.DatabaseType;
import com.carbonfive.db.jdbc.ScriptRunner;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.Validate;
import org.springframework.core.io.Resource;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.SQLException;

public class SQLScriptMigration extends AbstractMigration
{
    private final Resource script;

    public SQLScriptMigration(String version, Resource script)
    {
        super(version, script.getFilename());
        this.script = script;
    }

    public void migrate(DatabaseType dbType, Connection connection)
    {
        InputStream inputStream = null;
        try
        {
            inputStream = script.getInputStream();
            ScriptRunner scriptRunner = new ScriptRunner(dbType);
            scriptRunner.execute(connection, new InputStreamReader(inputStream, "UTF-8"));
            Validate.isTrue(!connection.isClosed(), "JDBC Connection should not be closed.");
        }
        catch (IOException e)
        {
            throw new MigrationException("Error while reading script input stream.", e);
        }
        catch (SQLException e)
        {
            throw new MigrationException("Error while executing migration script.", e);
        }
        finally
        {
            IOUtils.closeQuietly(inputStream);
        }
    }
}
TOP

Related Classes of com.carbonfive.db.migration.SQLScriptMigration

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.