use of liquibase.database.Database in project liquibase by liquibase.
the class CreateTableGeneratorTest method testAutoIncrementStartWithPostgresDatabase.
@Test
public void testAutoIncrementStartWithPostgresDatabase() throws Exception {
for (Database database : TestContext.getInstance().getAllDatabases()) {
if (database instanceof PostgresDatabase) {
MockDatabaseConnection conn = new MockDatabaseConnection();
conn.setDatabaseMajorVersion(9);
database.setConnection(conn);
CreateTableStatement statement = new CreateTableStatement(CATALOG_NAME, SCHEMA_NAME, TABLE_NAME);
statement.addColumn(COLUMN_NAME1, DataTypeFactory.getInstance().fromDescription("BIGINT{autoIncrement:true}", database), new AutoIncrementConstraint(COLUMN_NAME1, BigInteger.ZERO, null));
Sql[] generatedSql = this.generatorUnderTest.generateSql(statement, database, null);
// start with supported over generated sequence
assertEquals("CREATE TABLE SCHEMA_NAME.TABLE_NAME (COLUMN1_NAME BIGSERIAL)", generatedSql[0].toSql());
conn.setDatabaseMajorVersion(10);
generatedSql = this.generatorUnderTest.generateSql(statement, database, null);
}
}
}
use of liquibase.database.Database in project liquibase by liquibase.
the class InsertOrUpdateGeneratorH2Test method testGetUpdateStatement_notOnlyUpdate.
// private static final String SEQUENCE_NAME = "my_sequence";
/**
* Test method for {@link InsertOrUpdateGeneratorH2#getUpdateStatement(InsertOrUpdateStatement, Database, String, SqlGeneratorChain)}.
* @throws LiquibaseException
*/
@Test
public void testGetUpdateStatement_notOnlyUpdate() throws LiquibaseException {
final InsertOrUpdateGeneratorH2 generator = new InsertOrUpdateGeneratorH2();
final InsertOrUpdateStatement insertOrUpdateStatement = new InsertOrUpdateStatement(CATALOG_NAME, SCHEMA_NAME, TABLE_NAME, "pk1");
final Database database = new H2Database();
final SqlGeneratorChain sqlGeneratorChain = null;
ColumnConfig columnConfig;
columnConfig = new ColumnConfig();
columnConfig.setValue("value0");
columnConfig.setName("col0");
insertOrUpdateStatement.addColumn(columnConfig);
columnConfig = new ColumnConfig();
columnConfig.setValue("keyvalue1");
columnConfig.setName("pk1");
insertOrUpdateStatement.addColumn(columnConfig);
final String whereClause = generator.getWhereClause(insertOrUpdateStatement, database);
String result = generator.getUpdateStatement(insertOrUpdateStatement, database, whereClause, sqlGeneratorChain);
assertEquals("", result);
}
use of liquibase.database.Database in project liquibase by liquibase.
the class UpdateGeneratorTest method testGenerateSqlWithParamPlaceholders.
@Test
public void testGenerateSqlWithParamPlaceholders() {
// given
Database database = new MSSQLDatabase();
UpdateStatement statement = new UpdateStatement(null, null, "DATABASECHANGELOG").addNewColumnValue("MD5SUM", "7:e27bf9c0c2313160ef960a15d44ced47").setWhereClause(database.escapeObjectName("ID", Column.class) + " = ? " + "AND " + database.escapeObjectName("AUTHOR", Column.class) + " = ? " + "AND " + database.escapeObjectName("FILENAME", Column.class) + " = ?").addWhereParameters("SYPA: AUTO_START tüüp INT -> TEXT, vaartus 0 00 17 * * ?", "martin", "db/changelog.xml");
UpdateGenerator generator = new UpdateGenerator();
// when
Sql[] sqls = generator.generateSql(statement, database, null);
// then
assertEquals("UPDATE DATABASECHANGELOG " + "SET MD5SUM = '7:e27bf9c0c2313160ef960a15d44ced47' " + "WHERE ID = N'SYPA: AUTO_START tüüp INT -> TEXT, vaartus 0 00 17 * * ?' " + "AND AUTHOR = 'martin' " + "AND FILENAME = 'db/changelog.xml'", sqls[0].toSql());
}
use of liquibase.database.Database in project liquibase by liquibase.
the class TestContext method getAllDatabases.
public Set<Database> getAllDatabases() {
if (allDatabases == null) {
allDatabases = new HashSet<Database>();
allDatabases.addAll(DatabaseFactory.getInstance().getImplementedDatabases());
List<Database> toRemove = new ArrayList<Database>();
for (Database database : allDatabases) {
if (// todo: re-enable sqlite testing
(database instanceof SQLiteDatabase) || (database instanceof MockDatabase)) {
toRemove.add(database);
}
database.setCanCacheLiquibaseTableInfo(false);
}
allDatabases.removeAll(toRemove);
}
return allDatabases;
}
use of liquibase.database.Database in project liquibase by liquibase.
the class AddDefaultValueGeneratorInformixTest method generateSql.
@Test
public void generateSql() {
AddDefaultValueStatement statement = new AddDefaultValueStatement("catalog1", "schema2", "table3", "column4", "type5", "default-value-6");
Database database = new InformixDatabase();
Sql[] sql = generator.generateSql(statement, database, null);
assertEquals(1, sql.length);
assertEquals("ALTER TABLE catalog1:schema2.table3 MODIFY (column4 TYPE5 DEFAULT 'default-value-6')", sql[0].toSql());
}
Aggregations