1 // Copyright 2011 Leo Przybylski. All rights reserved. 2 // 3 // Redistribution and use in source and binary forms, with or without modification, are 4 // permitted provided that the following conditions are met: 5 // 6 // 1. Redistributions of source code must retain the above copyright notice, this list of 7 // conditions and the following disclaimer. 8 // 9 // 2. Redistributions in binary form must reproduce the above copyright notice, this list 10 // of conditions and the following disclaimer in the documentation and/or other materials 11 // provided with the distribution. 12 // 13 // THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ''AS IS'' AND ANY EXPRESS OR IMPLIED 14 // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 15 // FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR 16 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 17 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 18 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 19 // ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 20 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 21 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 22 // 23 // The views and conclusions contained in the software and documentation are those of the 24 // authors and should not be interpreted as representing official policies, either expressed 25 // or implied, of Leo Przybylski. 26 package liquibase.database.ext; 27 28 import liquibase.exception.DatabaseException; 29 30 import static liquibase.ext.Constants.EXTENSION_PRIORITY; 31 32 /** 33 * Overridden to replace all schema instances with "" when getting view definitions. The purpose is to make it schema non-specific 34 * 35 * @author Leo Przybylski (leo [at] rsmart.com 36 */ 37 public class MySqlDatabase extends liquibase.database.core.MySQLDatabase { 38 39 public int getPriority() { 40 return EXTENSION_PRIORITY; 41 } 42 43 @Override 44 public String getViewDefinition(String schemaName, String viewName) throws DatabaseException { 45 String retval = super.getViewDefinition(schemaName, viewName); 46 final String schemaStr = String.format("`%s`.", schemaName); 47 retval = retval.replaceAll(schemaStr.toLowerCase(), ""); 48 retval = retval.replaceAll(schemaStr.toUpperCase(), ""); 49 return retval; 50 } 51 }