/*
* Copyright (c) 2017 OBiBa. All rights reserved.
*
* This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.obiba.magma.datasource.jdbc.support;
import com.google.common.collect.ImmutableSet;
import liquibase.database.Database;
import liquibase.sql.visitor.AbstractSqlVisitor;
public class MySqlEngineVisitor extends AbstractSqlVisitor {
public MySqlEngineVisitor() {
setApplicableDbms(ImmutableSet.of("mysql"));
}
@Override
public String modifySql(String sql, Database database) {
StringBuilder sb = new StringBuilder(sql);
if(sql.toLowerCase().startsWith("create table") && !sql.toLowerCase().contains("engine="))
sb.append("ENGINE=InnoDB");
if(sql.contains("BLOB")) return sb.toString().replaceAll("BLOB", "LONGBLOB");
return sb.toString();
}
@Override
public String getName() {
return MySqlEngineVisitor.class.getSimpleName();
}
}