Search in sources :

Example 86 with Database

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);
        }
    }
}
Also used : PostgresDatabase(liquibase.database.core.PostgresDatabase) CreateTableStatement(liquibase.statement.core.CreateTableStatement) SQLiteDatabase(liquibase.database.core.SQLiteDatabase) DerbyDatabase(liquibase.database.core.DerbyDatabase) H2Database(liquibase.database.core.H2Database) MSSQLDatabase(liquibase.database.core.MSSQLDatabase) MySQLDatabase(liquibase.database.core.MySQLDatabase) PostgresDatabase(liquibase.database.core.PostgresDatabase) OracleDatabase(liquibase.database.core.OracleDatabase) SybaseDatabase(liquibase.database.core.SybaseDatabase) SybaseASADatabase(liquibase.database.core.SybaseASADatabase) Database(liquibase.database.Database) AbstractDb2Database(liquibase.database.core.AbstractDb2Database) HsqlDatabase(liquibase.database.core.HsqlDatabase) MockDatabaseConnection(liquibase.database.MockDatabaseConnection) Sql(liquibase.sql.Sql) AbstractSqlGeneratorTest(liquibase.sqlgenerator.AbstractSqlGeneratorTest) Test(org.junit.Test)

Example 87 with Database

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);
}
Also used : InsertOrUpdateStatement(liquibase.statement.core.InsertOrUpdateStatement) ColumnConfig(liquibase.change.ColumnConfig) H2Database(liquibase.database.core.H2Database) Database(liquibase.database.Database) H2Database(liquibase.database.core.H2Database) SqlGeneratorChain(liquibase.sqlgenerator.SqlGeneratorChain) Test(org.junit.Test)

Example 88 with Database

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());
}
Also used : UpdateStatement(liquibase.statement.core.UpdateStatement) Column(liquibase.structure.core.Column) MSSQLDatabase(liquibase.database.core.MSSQLDatabase) Database(liquibase.database.Database) MSSQLDatabase(liquibase.database.core.MSSQLDatabase) Sql(liquibase.sql.Sql) Test(org.junit.Test)

Example 89 with Database

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;
}
Also used : SQLiteDatabase(liquibase.database.core.SQLiteDatabase) SQLiteDatabase(liquibase.database.core.SQLiteDatabase) Database(liquibase.database.Database) MockDatabase(liquibase.database.core.MockDatabase) ArrayList(java.util.ArrayList) MockDatabase(liquibase.database.core.MockDatabase)

Example 90 with Database

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());
}
Also used : InformixDatabase(liquibase.database.core.InformixDatabase) InformixDatabase(liquibase.database.core.InformixDatabase) Database(liquibase.database.Database) AddDefaultValueStatement(liquibase.statement.core.AddDefaultValueStatement) Sql(liquibase.sql.Sql) Test(org.junit.Test)

Aggregations

Database (liquibase.database.Database)220 Test (org.junit.Test)99 MSSQLDatabase (liquibase.database.core.MSSQLDatabase)60 SQLiteDatabase (liquibase.database.core.SQLiteDatabase)57 Sql (liquibase.sql.Sql)57 OracleDatabase (liquibase.database.core.OracleDatabase)55 MySQLDatabase (liquibase.database.core.MySQLDatabase)53 PostgresDatabase (liquibase.database.core.PostgresDatabase)51 AbstractSqlGeneratorTest (liquibase.sqlgenerator.AbstractSqlGeneratorTest)48 H2Database (liquibase.database.core.H2Database)47 DerbyDatabase (liquibase.database.core.DerbyDatabase)45 AbstractDb2Database (liquibase.database.core.AbstractDb2Database)44 HsqlDatabase (liquibase.database.core.HsqlDatabase)44 SybaseASADatabase (liquibase.database.core.SybaseASADatabase)44 SybaseDatabase (liquibase.database.core.SybaseDatabase)44 CreateTableStatement (liquibase.statement.core.CreateTableStatement)44 DatabaseException (liquibase.exception.DatabaseException)28 SQLException (java.sql.SQLException)25 AbstractJdbcDatabaseTest (liquibase.database.AbstractJdbcDatabaseTest)23 Liquibase (liquibase.Liquibase)22