public void testSchemaTools() throws Exception{ // database schema have been created thanks to the setUp method // we have 2 schemas SA et SB, SB must be set as the default schema // used by hibernate hibernate.default_schema SB SchemaExport se = new SchemaExport(getCfg()); se.create(true,true); // here we modify the generated table in order to test SchemaUpdate Session session = openSession(); Connection conn = session.connection(); Statement stat = conn.createStatement(); stat.execute("ALTER TABLE \"SB\".\"Team\" DROP COLUMN name "); // update schema SchemaUpdate su = new SchemaUpdate(getCfg()); su.execute(true,true); // we can run schema validation. Note that in the setUp method a *wrong* table // has been created with different column names // if schema validator chooses the bad db schema, then the testcase will fail (exception) SchemaValidator sv = new SchemaValidator(getCfg()); sv.validate(); // it's time to clean our database se.drop(true,true); // then the schemas and false table. stat.execute("DROP TABLE \"SA\".\"Team\" "); stat.execute(" DROP SCHEMA sa "); stat.execute("DROP SCHEMA sb "); stat.close(); session.close(); }
public void testSchemaToolsNonQuote() throws Exception{ // database schema have been created thanks to the setUp method // we have 2 schemas SA et SB, SB must be set as the default schema // used by hibernate hibernate.default_schema SB SchemaExport se = new SchemaExport(getCfg()); se.create(true,true); // here we modify the generated table in order to test SchemaUpdate Session session = openSession(); Connection conn = session.connection(); Statement stat = conn.createStatement(); stat.execute("ALTER TABLE \"SB\".\"TEAM\" DROP COLUMN xname "); // update schema SchemaUpdate su = new SchemaUpdate(getCfg()); su.execute(true,true); // we can run schema validation. Note that in the setUp method a *wrong* table // has been created with different column names // if schema validator chooses the bad db schema, then the testcase will fail (exception) SchemaValidator sv = new SchemaValidator(getCfg()); sv.validate(); // it's time to clean our database se.drop(true,true); // then the schemas and false table. stat.execute("DROP TABLE \"SA\".\"Team\" "); stat.execute(" DROP SCHEMA sa "); stat.execute("DROP SCHEMA sb "); stat.close(); session.close(); }
public void testFailingQuoteValidation() throws Exception{ // database schema have been created thanks to the setUp method // we have 2 schemas SA et SB, SB must be set as the default schema // used by hibernate hibernate.default_schema SB SchemaExport se = new SchemaExport(getCfg()); se.create(true,true); // here we modify the generated table in order to test SchemaUpdate Session session = openSession(); Connection conn = session.connection(); Statement stat = conn.createStatement(); stat.execute("ALTER TABLE \"SB\".\"Team\" DROP COLUMN name "); // update schema //SchemaUpdate su = new SchemaUpdate(getCfg()); //su.execute(true,true); try { SchemaValidator sv = new SchemaValidator(getCfg()); sv.validate(); fail("should fail since we mutated the current schema."); } catch(HibernateException he) { } // it's time to clean our database se.drop(true,true); // then the schemas and false table. stat.execute("DROP TABLE \"SA\".\"Team\" "); stat.execute(" DROP SCHEMA sa "); stat.execute("DROP SCHEMA sb "); stat.close(); session.close(); }
public void testFailingNonQuoteValidation() throws Exception{ // database schema have been created thanks to the setUp method // we have 2 schemas SA et SB, SB must be set as the default schema // used by hibernate hibernate.default_schema SB SchemaExport se = new SchemaExport(getCfg()); se.create(true,true); // here we modify the generated table in order to test SchemaUpdate Session session = openSession(); Connection conn = session.connection(); Statement stat = conn.createStatement(); stat.execute("ALTER TABLE \"SB\".\"TEAM\" DROP COLUMN xname "); // update schema //SchemaUpdate su = new SchemaUpdate(getCfg()); //su.execute(true,true); try { SchemaValidator sv = new SchemaValidator(getCfg()); sv.validate(); fail("should fail since we mutated the current schema."); } catch(HibernateException he) { } // it's time to clean our database se.drop(true,true); // then the schemas and false table. stat.execute("DROP TABLE \"SA\".\"Team\" "); stat.execute(" DROP SCHEMA sa "); stat.execute("DROP SCHEMA sb "); stat.close(); session.close(); }
/** * Schema validation */ private void validateSchema() { try { StandardServiceRegistry registry = localSessionFactory.getConfiguration() .getStandardServiceRegistryBuilder().build(); MetadataSources sources = new MetadataSources(registry); sources.addPackage("org.unitedinternet.cosmo.model.hibernate"); Metadata metadata = sources.buildMetadata(registry); new SchemaValidator().validate(metadata); LOG.info("schema validation passed"); } catch (HibernateException e) { LOG.error("error validating schema", e); throw e; } }
public static void execute(Dialect dialect, Class<?>... classes) { Configuration configuration = new Configuration(); SchemaExport schemaExport = new SchemaExport(configuration); SchemaUpdate schemaUpdate = new SchemaUpdate(configuration); try { new SchemaValidator(configuration).validate(); } catch (Exception e) { logger.error("Failed create the table: " + e.getMessage()); } }