本文整理汇总了Java中liquibase.database.core.MySQLDatabase类的典型用法代码示例。如果您正苦于以下问题:Java MySQLDatabase类的具体用法?Java MySQLDatabase怎么用?Java MySQLDatabase使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
MySQLDatabase类属于liquibase.database.core包,在下文中一共展示了MySQLDatabase类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: setup
import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
@Before
public void setup() {
System.setProperty(Configuration.LIQUIBASE_PASSWORD, "root");
database = new MySQLDatabase();
database.setLiquibaseSchemaName("testdb");
DatabaseConnection conn = new MockDatabaseConnection("jdbc:mysql://[email protected]:3306/testdb",
"[email protected]");
database.setConnection(conn);
ExecutorService.getInstance().setExecutor(database, new JdbcExecutor());
PTOnlineSchemaChangeStatement.available = true;
PTOnlineSchemaChangeStatement.perconaToolkitVersion = null;
System.setProperty(Configuration.FAIL_IF_NO_PT, "false");
System.setProperty(Configuration.NO_ALTER_SQL_DRY_MODE, "false");
System.setProperty(Configuration.SKIP_CHANGES, "");
setupChange(change);
}
示例2: generateSql
import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
public Sql[] generateSql(SetTableRemarksStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {
String sql;
String remarks = database.escapeStringForDatabase(statement.getRemarks());
if (database instanceof MySQLDatabase) {
sql = "ALTER TABLE " + database.escapeTableName(statement.getSchemaName(), statement.getTableName()) + " COMMENT = '" + remarks
+ "'";
} else {
String command = "COMMENT";
if (database instanceof DB2iDatabase) {
command = "LABEL";
}
sql = command + " ON TABLE " + database.escapeTableName(statement.getSchemaName(), statement.getTableName()) + " IS '"
+ database.escapeStringForDatabase(remarks) + "'";
}
return new Sql[] { new UnparsedSql(sql) };
}
示例3: generateStatements
import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
/**
* Generates a {@link DropSpatialIndexStatement} followed by a {@link DropIndexStatement}, if
* applicable. The first statement allows extra clean-up when dropping an index. The second
* statement leverages the normal <code>DROP INDEX</code> logic.
*/
@Override
public SqlStatement[] generateStatements(final Database database) {
final Collection<SqlStatement> statements = new ArrayList<SqlStatement>();
// MySQL and PostgreSQL only need the normal DROP INDEX statement.
if (!(database instanceof MySQLDatabase) && !(database instanceof PostgresDatabase)) {
final DropSpatialIndexStatement dropSpatialIndex = new DropSpatialIndexStatement(
this.indexName, this.catalogName, this.schemaName, this.tableName);
statements.add(dropSpatialIndex);
}
// GeoDB doesn't use a tradition index structure so don't issue the normal DROP INDEX
// statement.
if (!(database instanceof DerbyDatabase) && !(database instanceof H2Database)) {
final DropIndexStatement dropIndex = new DropIndexStatement(this.indexName,
this.catalogName, this.schemaName, this.tableName, null);
statements.add(dropIndex);
}
return statements.toArray(new SqlStatement[statements.size()]);
}
示例4: testGenerateSql
import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
/**
* Tests
* {@link CreateSpatialIndexGeneratorMySQL#generateSql(CreateSpatialIndexStatement, Database, SqlGeneratorChain)}
* with a variety of inputs.
*
* @param statement
*/
@Test(dataProvider = "generateSqlTestData")
public void testGenerateSql(final CreateSpatialIndexStatement statement) {
final CreateSpatialIndexGeneratorMySQL generator = new CreateSpatialIndexGeneratorMySQL();
final Database database = new MySQLDatabase();
final SqlGeneratorChain sqlGeneratorChain = mock(SqlGeneratorChain.class);
final Sql[] result = generator.generateSql(statement, database, sqlGeneratorChain);
assertNotNull(result);
assertEquals(result.length, 1);
final String sql = result[0].toSql();
String pattern = "(?i)CREATE SPATIAL INDEX " + statement.getIndexName() + " ON ";
if (statement.getTableCatalogName() != null) {
pattern += statement.getTableCatalogName() + '.';
} else if (statement.getTableSchemaName() != null) {
pattern += statement.getTableSchemaName() + '.';
}
pattern += statement.getTableName() + "\\(" + statement.getColumns()[0] + "\\)";
assertTrue(sql.matches(pattern), "'" + sql + "' does not match the pattern '" + pattern + "'");
assertNotNull(result[0].getAffectedDatabaseObjects());
assertTrue(result[0].getAffectedDatabaseObjects().size() > 1, result[0]
.getAffectedDatabaseObjects().toString());
}
示例5: setup
import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
@Before
public void setup() {
System.setProperty(Configuration.LIQUIBASE_PASSWORD, "root");
database = new MySQLDatabase();
database.setLiquibaseSchemaName("testdb");
DatabaseConnection conn = new MockDatabaseConnection("jdbc:mysql://[email protected]:3306/testdb",
"[email protected]");
database.setConnection(conn);
}
示例6: toDatabaseDataType
import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
@Override
public DatabaseDataType toDatabaseDataType(Database database) {
if (database instanceof DB2Database || database instanceof FirebirdDatabase) {
return new DatabaseDataType("SMALLINT");
} else if (database instanceof MSSQLDatabase) {
return new DatabaseDataType("BIT");
} else if (database instanceof MySQLDatabase) {
if (originalDefinition.toLowerCase().startsWith("bit")) {
return new DatabaseDataType("BIT", getParameters());
}
return new DatabaseDataType("BIT", 1);
} else if (database instanceof OracleDatabase) {
return new DatabaseDataType("NUMBER", 1);
} else if (database instanceof SybaseASADatabase || database instanceof SybaseDatabase) {
return new DatabaseDataType("BIT");
} else if (database instanceof DerbyDatabase) {
if (((DerbyDatabase) database).supportsBooleanDataType()) {
return new DatabaseDataType("BOOLEAN");
} else {
return new DatabaseDataType("SMALLINT");
}
} else if (database instanceof SQLFireDatabase) {
return new DatabaseDataType("SMALLINT");
} else if (database instanceof HsqlDatabase) {
return new DatabaseDataType("BOOLEAN");
}
return super.toDatabaseDataType(database);
}
示例7: isNumericBoolean
import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
protected boolean isNumericBoolean(Database database) {
if (database instanceof DerbyDatabase) {
return !((DerbyDatabase) database).supportsBooleanDataType();
}
return database instanceof DB2Database
|| database instanceof FirebirdDatabase
|| database instanceof MSSQLDatabase
|| database instanceof MySQLDatabase
|| database instanceof OracleDatabase
|| database instanceof SQLFireDatabase
|| database instanceof SQLiteDatabase
|| database instanceof SybaseASADatabase
|| database instanceof SybaseDatabase;
}
示例8: generateSql
import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
public Sql[] generateSql(TagDatabaseStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {
String liquibaseSchema = null;
liquibaseSchema = database.getLiquibaseSchemaName();
UpdateStatement updateStatement = new UpdateStatement(liquibaseSchema, database.getDatabaseChangeLogTableName());
updateStatement.addNewColumnValue("TAG", statement.getTag());
if (database instanceof MySQLDatabase) {
try {
long version = Long.parseLong(database.getDatabaseProductVersion().substring(0, 1));
if (version < 5) {
return new Sql[]{
new UnparsedSql("UPDATE "+database.escapeTableName(database.getLiquibaseSchemaName(), database.getDatabaseChangeLogTableName())+" C LEFT JOIN (SELECT MAX(DATEEXECUTED) as MAXDATE FROM (SELECT DATEEXECUTED FROM `DATABASECHANGELOG`) AS X) D ON C.DATEEXECUTED = D.MAXDATE SET C.TAG = '" + statement.getTag() + "' WHERE D.MAXDATE IS NOT NULL")
};
}
} catch (Throwable e) {
; //assume it is version 5
}
updateStatement.setWhereClause("DATEEXECUTED = (SELECT MAX(DATEEXECUTED) FROM (SELECT DATEEXECUTED FROM " + database.escapeTableName(liquibaseSchema, database.getDatabaseChangeLogTableName()) + ") AS X)");
} else if (database instanceof InformixDatabase) {
return new Sql[]{
new UnparsedSql("SELECT MAX(dateexecuted) max_date FROM " + database.escapeTableName(liquibaseSchema, database.getDatabaseChangeLogTableName()) + " INTO TEMP max_date_temp WITH NO LOG"),
new UnparsedSql("UPDATE "+database.escapeTableName(liquibaseSchema, database.getDatabaseChangeLogTableName())+" SET TAG = '"+statement.getTag()+"' WHERE DATEEXECUTED = (SELECT max_date FROM max_date_temp);"),
new UnparsedSql("DROP TABLE max_date_temp;")
};
} else {
updateStatement.setWhereClause("DATEEXECUTED = (SELECT MAX(DATEEXECUTED) FROM " + database.escapeTableName(liquibaseSchema, database.getDatabaseChangeLogTableName()) + ")");
}
return SqlGeneratorFactory.getInstance().generateSql(updateStatement, database);
}
示例9: generateSql
import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
public Sql[] generateSql(DropForeignKeyConstraintStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {
if (database instanceof MySQLDatabase || database instanceof MaxDBDatabase || database instanceof SybaseASADatabase) {
return new Sql[] { new UnparsedSql("ALTER TABLE " + database.escapeTableName(statement.getBaseTableSchemaName(), statement.getBaseTableName()) + " DROP FOREIGN KEY " + database.escapeConstraintName(statement.getConstraintName())) };
} else {
return new Sql[] { new UnparsedSql("ALTER TABLE " + database.escapeTableName(statement.getBaseTableSchemaName(), statement.getBaseTableName()) + " DROP CONSTRAINT " + database.escapeConstraintName(statement.getConstraintName())) };
}
}
示例10: warn
import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
@Override
public Warnings warn(final Database database) {
final Warnings warnings = new Warnings();
if (!(database instanceof DerbyDatabase || database instanceof H2Database
|| database instanceof MySQLDatabase || database instanceof OracleDatabase || database instanceof PostgresDatabase)) {
warnings.addWarning(database.getDatabaseProductName()
+ " is not supported by this extension");
}
return warnings;
}
示例11: validate
import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
@Override
public ValidationErrors validate(final Database database) {
final ValidationErrors errors = new ValidationErrors();
if (!(database instanceof DerbyDatabase || database instanceof H2Database
|| database instanceof MySQLDatabase || database instanceof OracleDatabase || database instanceof PostgresDatabase)) {
errors.addError(database.getDatabaseProductName() + " is not supported by this extension");
}
return errors;
}
示例12: testSupports
import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
/**
* Tests {@link CreateSpatialIndexGeneratorMySQL#supports(CreateSpatialIndexStatement, Database)}
*/
@Test
public void testSupports() {
final CreateSpatialIndexGeneratorMySQL generator = new CreateSpatialIndexGeneratorMySQL();
final CreateSpatialIndexStatement statement = mock(CreateSpatialIndexStatement.class);
assertTrue(generator.supports(statement, new MySQLDatabase()));
assertFalse(generator.supports(statement, new H2Database()));
}
示例13: isValid
import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
@Override
public void isValid() throws Exception {
super.isValid();
AddColumnStatement addPKColumn = new AddColumnStatement(null, null, "table_name", "column_name", "column_type", null, new PrimaryKeyConstraint("pk_name"));
assertFalse(generatorUnderTest.validate(addPKColumn, new HanaDBDatabase(), new MockSqlGeneratorChain()).hasErrors());
assertTrue(generatorUnderTest.validate(addPKColumn, new H2Database(), new MockSqlGeneratorChain()).getErrorMessages().contains("Cannot add a primary key column"));
// "catalog_name", "schema_name", "table_name", "column_name", "column_type" ...
assertTrue(generatorUnderTest.validate(new AddColumnStatement(null, null, null, null, null, null, new AutoIncrementConstraint()), new MySQLDatabase(), new MockSqlGeneratorChain()).getErrorMessages().contains("Cannot add a non-primary key identity column"));
}
示例14: generateStatements
import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
public static SqlStatement[] generateStatements(PerconaChange change,
Database database, SqlStatement[] originalStatements) {
if (Boolean.FALSE.equals(change.getUsePercona()) || !Configuration.getDefaultOn()) {
String changeSetId = "unknown changeset id";
if (change instanceof Change) {
ChangeSet changeSet = ((Change)change).getChangeSet();
if (changeSet != null) {
changeSetId = changeSet.getId() + ":" + changeSet.getAuthor();
}
}
log.debug("Not using percona toolkit, because usePercona flag is false for " + changeSetId + ":" + change.toString());
return originalStatements;
}
if (Configuration.skipChange(change.getChangeSkipName())) {
maybeLog("Not using percona toolkit, because skipChange for "
+ change.getChangeSkipName() + " is active (property: " + Configuration.SKIP_CHANGES + ")!");
return originalStatements;
}
List<SqlStatement> statements = new ArrayList<SqlStatement>(Arrays.asList(originalStatements));
if (database instanceof MySQLDatabase) {
if (PTOnlineSchemaChangeStatement.isAvailable()) {
PTOnlineSchemaChangeStatement statement = new PTOnlineSchemaChangeStatement(
change.getTargetTableName(),
change.generateAlterStatement(database));
if (isDryRun(database)) {
CommentStatement commentStatement = new CommentStatement(statement.printCommand(database));
if (Configuration.noAlterSqlDryMode()) {
statements.clear();
statements.add(0, commentStatement);
} else {
statements.add(0, commentStatement);
statements.add(1, new CommentStatement("Instead of the following statements, pt-online-schema-change will be used"));
}
} else {
statements.clear();
statements.add(statement);
}
} else {
if (Configuration.failIfNoPT()) {
throw new RuntimeException("No percona toolkit found!");
}
maybeLog("Not using percona toolkit, because it is not available!");
}
}
return statements.toArray(new SqlStatement[statements.size()]);
}
示例15: supports
import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
@Override
public boolean supports(InsertOrUpdateStatement statement, Database database) {
return database instanceof MySQLDatabase;
}