Search in sources :

Example 21 with SchemaUpdate

use of org.hibernate.tool.hbm2ddl.SchemaUpdate in project hibernate-orm by hibernate.

the class MigrationTest method testSameTableNameDifferentExplicitSchemas.

@Test
@TestForIssue(jiraKey = "HHH-9550")
public void testSameTableNameDifferentExplicitSchemas() {
    MetadataImplementor metadata = (MetadataImplementor) new MetadataSources(serviceRegistry).addAnnotatedClass(CustomerInfo.class).addAnnotatedClass(PersonInfo.class).buildMetadata();
    // drop and then create the schema
    new SchemaExport().execute(EnumSet.of(TargetType.DATABASE), SchemaExport.Action.BOTH, metadata);
    try {
        // update the schema
        new SchemaUpdate().execute(EnumSet.of(TargetType.DATABASE), metadata);
    } finally {
        // drop the schema
        new SchemaExport().drop(EnumSet.of(TargetType.DATABASE), metadata);
    }
}
Also used : MetadataSources(org.hibernate.boot.MetadataSources) MetadataImplementor(org.hibernate.boot.spi.MetadataImplementor) SchemaUpdate(org.hibernate.tool.hbm2ddl.SchemaUpdate) SchemaExport(org.hibernate.tool.hbm2ddl.SchemaExport) Test(org.junit.Test) TestForIssue(org.hibernate.testing.TestForIssue)

Example 22 with SchemaUpdate

use of org.hibernate.tool.hbm2ddl.SchemaUpdate in project hibernate-orm by hibernate.

the class MigrationTest method testIndexCreationViaSchemaUpdate.

// /**
// * 3_Version.hbm.xml contains a named unique constraint and an un-named
// * unique constraint (will receive a randomly-generated name).  Create
// * the original schema with 2_Version.hbm.xml.  Then, run SchemaUpdate
// * TWICE using 3_Version.hbm.xml.  Neither RECREATE_QUIETLY nor SKIP should
// * generate any exceptions.
// */
// @Test
// @TestForIssue( jiraKey = "HHH-8162" )
// public void testConstraintUpdate() {
// doConstraintUpdate(UniqueConstraintSchemaUpdateStrategy.DROP_RECREATE_QUIETLY);
// doConstraintUpdate(UniqueConstraintSchemaUpdateStrategy.RECREATE_QUIETLY);
// doConstraintUpdate(UniqueConstraintSchemaUpdateStrategy.SKIP);
// }
// 
// private void doConstraintUpdate(UniqueConstraintSchemaUpdateStrategy strategy) {
// // original
// String resource1 = "org/hibernate/test/schemaupdate/2_Version.hbm.xml";
// // adds unique constraint
// String resource2 = "org/hibernate/test/schemaupdate/3_Version.hbm.xml";
// 
// MetadataImplementor v1metadata = (MetadataImplementor) new MetadataSources( serviceRegistry )
// .addResource( resource1 )
// .buildMetadata();
// MetadataImplementor v2metadata = (MetadataImplementor) new MetadataSources( serviceRegistry )
// .addResource( resource2 )
// .buildMetadata();
// 
// new SchemaExport( v1metadata ).execute( false, true, true, false );
// 
// // adds unique constraint
// Configuration v2cfg = new Configuration();
// v2cfg.getProperties().put( AvailableSettings.UNIQUE_CONSTRAINT_SCHEMA_UPDATE_STRATEGY, strategy );
// v2cfg.addResource( resource2 );
// SchemaUpdate v2schemaUpdate = new SchemaUpdate( serviceRegistry, v2cfg );
// v2schemaUpdate.execute( true, true );
// assertEquals( 0, v2schemaUpdate.getExceptions().size() );
// 
// Configuration v3cfg = new Configuration();
// v3cfg.getProperties().put( AvailableSettings.UNIQUE_CONSTRAINT_SCHEMA_UPDATE_STRATEGY, strategy );
// v3cfg.addResource( resource2 );
// SchemaUpdate v3schemaUpdate = new SchemaUpdate( serviceRegistry, v3cfg );
// v3schemaUpdate.execute( true, true );
// assertEquals( 0, v3schemaUpdate.getExceptions().size() );
// 
// new SchemaExport( serviceRegistry, v3cfg ).drop( false, true );
// }
@Test
@TestForIssue(jiraKey = "HHH-9713")
public void testIndexCreationViaSchemaUpdate() {
    MetadataImplementor metadata = (MetadataImplementor) new MetadataSources(serviceRegistry).addAnnotatedClass(EntityWithIndex.class).buildMetadata();
    // drop and then create the schema
    new SchemaExport().execute(EnumSet.of(TargetType.DATABASE), SchemaExport.Action.BOTH, metadata);
    try {
        // update the schema
        new SchemaUpdate().execute(EnumSet.of(TargetType.DATABASE), metadata);
    } finally {
        // drop the schema
        new SchemaExport().drop(EnumSet.of(TargetType.DATABASE), metadata);
    }
}
Also used : MetadataSources(org.hibernate.boot.MetadataSources) MetadataImplementor(org.hibernate.boot.spi.MetadataImplementor) SchemaUpdate(org.hibernate.tool.hbm2ddl.SchemaUpdate) SchemaExport(org.hibernate.tool.hbm2ddl.SchemaExport) Test(org.junit.Test) TestForIssue(org.hibernate.testing.TestForIssue)

Example 23 with SchemaUpdate

use of org.hibernate.tool.hbm2ddl.SchemaUpdate in project hibernate-orm by hibernate.

the class SchemaUpdateSQLServerTest method testSchemaUpdateAndValidation.

@Test
public void testSchemaUpdateAndValidation() throws Exception {
    if (!SQLServerDialect.class.isAssignableFrom(Dialect.getDialect().getClass())) {
        return;
    }
    new SchemaUpdate().setHaltOnError(true).execute(EnumSet.of(TargetType.DATABASE), metadata);
    new SchemaValidator().validate(metadata);
    new SchemaUpdate().setHaltOnError(true).setOutputFile(output.getAbsolutePath()).setFormat(false).execute(EnumSet.of(TargetType.DATABASE, TargetType.SCRIPT), metadata);
    final String fileContent = new String(Files.readAllBytes(output.toPath()));
    assertThat("The update output file should be empty", fileContent, is(""));
}
Also used : SQLServerDialect(org.hibernate.dialect.SQLServerDialect) SchemaValidator(org.hibernate.tool.hbm2ddl.SchemaValidator) SchemaUpdate(org.hibernate.tool.hbm2ddl.SchemaUpdate) Test(org.junit.Test)

Example 24 with SchemaUpdate

use of org.hibernate.tool.hbm2ddl.SchemaUpdate in project hibernate-orm by hibernate.

the class SchemaUpdateTest method testSchemaUpdateAndValidation.

@Test
public void testSchemaUpdateAndValidation() throws Exception {
    if (skipTest) {
        SkipLog.reportSkip("skipping test because quoted names are not case-sensitive.");
        return;
    }
    new SchemaUpdate().setHaltOnError(true).execute(EnumSet.of(TargetType.DATABASE), metadata);
    new SchemaValidator().validate(metadata);
    new SchemaUpdate().setHaltOnError(true).setOutputFile(output.getAbsolutePath()).setFormat(false).execute(EnumSet.of(TargetType.DATABASE, TargetType.SCRIPT), metadata);
    final String fileContent = new String(Files.readAllBytes(output.toPath()));
    assertThat("The update output file should be empty", fileContent, is(""));
}
Also used : SchemaValidator(org.hibernate.tool.hbm2ddl.SchemaValidator) SchemaUpdate(org.hibernate.tool.hbm2ddl.SchemaUpdate) Test(org.junit.Test)

Example 25 with SchemaUpdate

use of org.hibernate.tool.hbm2ddl.SchemaUpdate in project hibernate-orm by hibernate.

the class SchemaUpdateGeneratingOnlyScriptFileTest method testSchemaUpdateScriptGeneration.

@Test
public void testSchemaUpdateScriptGeneration() throws Exception {
    StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().applySetting(Environment.HBM2DDL_AUTO, "none").build();
    try {
        File output = File.createTempFile("update_script", ".sql");
        output.deleteOnExit();
        final MetadataImplementor metadata = (MetadataImplementor) new MetadataSources(ssr).addAnnotatedClass(TestEntity.class).buildMetadata();
        metadata.validate();
        new SchemaUpdate().setHaltOnError(true).setOutputFile(output.getAbsolutePath()).setDelimiter(";").setFormat(true).execute(EnumSet.of(TargetType.SCRIPT), metadata);
        String fileContent = new String(Files.readAllBytes(output.toPath()));
        Pattern fileContentPattern = Pattern.compile("create( (column|row))? table test_entity");
        Matcher fileContentMatcher = fileContentPattern.matcher(fileContent.toLowerCase());
        assertThat(fileContentMatcher.find(), is(true));
    } finally {
        StandardServiceRegistryBuilder.destroy(ssr);
    }
}
Also used : Pattern(java.util.regex.Pattern) StandardServiceRegistryBuilder(org.hibernate.boot.registry.StandardServiceRegistryBuilder) Matcher(java.util.regex.Matcher) MetadataSources(org.hibernate.boot.MetadataSources) MetadataImplementor(org.hibernate.boot.spi.MetadataImplementor) SchemaUpdate(org.hibernate.tool.hbm2ddl.SchemaUpdate) File(java.io.File) StandardServiceRegistry(org.hibernate.boot.registry.StandardServiceRegistry) Test(org.junit.Test)

Aggregations

SchemaUpdate (org.hibernate.tool.hbm2ddl.SchemaUpdate)25 Test (org.junit.Test)23 MetadataSources (org.hibernate.boot.MetadataSources)20 MetadataImplementor (org.hibernate.boot.spi.MetadataImplementor)20 StandardServiceRegistry (org.hibernate.boot.registry.StandardServiceRegistry)15 StandardServiceRegistryBuilder (org.hibernate.boot.registry.StandardServiceRegistryBuilder)15 SchemaExport (org.hibernate.tool.hbm2ddl.SchemaExport)9 File (java.io.File)7 TestForIssue (org.hibernate.testing.TestForIssue)7 Matcher (java.util.regex.Matcher)2 Pattern (java.util.regex.Pattern)2 SchemaValidator (org.hibernate.tool.hbm2ddl.SchemaValidator)2 ObjectQuery (com.evolveum.midpoint.prism.query.ObjectQuery)1 Holder (com.evolveum.midpoint.util.Holder)1 IOException (java.io.IOException)1 Connection (java.sql.Connection)1 DatabaseMetaData (java.sql.DatabaseMetaData)1 ResultSet (java.sql.ResultSet)1 SQLException (java.sql.SQLException)1 Statement (java.sql.Statement)1