@Override public void migrate(Connection connection) throws Exception { if ("sqlserver".equals(type) || "hsqldb".equals(type)) { //we don't have this problem with sqlserver or in memory DB logger.info("Skipping 4.0.4 migration for " + type + ", not affected by 3.9.9 back ports."); return; } ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); SingleConnectionDataSource dataSource = new SingleConnectionDataSource(connection, true); JdbcTemplate template = new JdbcTemplate(dataSource); boolean run = false; for (Map.Entry<String, String> script : getScripts()) { int count = template.queryForObject(checkExistsSql, Integer.class, script.getKey()); if (count == 0) { String path = "org/cloudfoundry/identity/uaa/db/" + type + "/" + script.getValue(); logger.info(String.format("[4.0.4] Adding script for version %s with path %s", script.getKey(), path)); populator.addScript(new ClassPathResource(path)); run = true; } } if (run) { logger.info("Running missing migrations."); populator.setContinueOnError(false); populator.setIgnoreFailedDrops(true); populator.populate(connection); logger.info("Completed missing migrations."); } else { logger.info("Skipping 4.0.4 migrations, no migrations missing."); } }
@Override public void migrate(Connection connection) throws Exception { ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); populator.addScript(new ClassPathResource("org/cloudfoundry/identity/uaa/db/" + type + "/V1_5_2__initial_db.sql")); populator.setContinueOnError(true); populator.setIgnoreFailedDrops(true); populator.populate(connection); } }
public static void runScript(DataSource dataSource, String stem) throws Exception { ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); String packageName = ClassUtils.getPackageName(TestUtils.class).replace(".", "/"); populator.addScript(new ClassPathResource(packageName.substring(0, packageName.lastIndexOf("/")) + "/" + stem + "-" + platform + ".sql")); Connection connection = dataSource.getConnection(); try { populator.populate(connection); } catch (ScriptStatementFailedException e) { // ignore } finally { DataSourceUtils.releaseConnection(connection, dataSource); } }
public static void runScript(DataSource dataSource, String stem) throws Exception { ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); String packageName = ClassUtils.getPackageName(TestUtils.class).replace(".", "/"); populator.addScript(new ClassPathResource(packageName.substring(0, packageName.lastIndexOf("/")) + "/" + stem + "-" + platform + ".sql")); Connection connection = dataSource.getConnection(); try { populator.populate(connection); } catch (ScriptStatementFailedException e) { // ignore } finally { DataSourceUtils.releaseConnection(connection, dataSource); } }
import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; import javax.sql.DataSource; DataSource dataSource = getYourMySQLDriverBackedDataSource(); ResourceDatabasePopulator rdp = new ResourceDatabasePopulator(); rdp.addScript(new ClassPathResource( "mysql-scripts/firstScript.sql")); rdp.addScript(new ClassPathResource( "mysql-scripts/secondScript.sql")); try { Connection connection = dataSource.getConnection(); rdp.populate(connection); // this starts the script execution, in the order as added } catch (SQLException e) { e.printStackTrace(); }
@Override public void populate(Connection connection) throws ScriptException { super.addScript(new ByteArrayResource(formattedScriptsToExecute(persistenceConfigurationProvider).toString().getBytes(Charset.forName(this.sqlScriptEncoding)),"Singular Schema Export Hibernate DDL + SQL Files")); super.populate(connection); }
/** * Hook to initialize the embedded database. Subclasses may call to force * initialization. After calling this method, {@link #getDataSource()} * returns the DataSource providing connectivity to the db. * * @throws SQLException */ protected void initDatabase(final Connection connection) throws SQLException { if (StringUtils.isNotBlank(initScriptPath)) { ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator(); databasePopulator.addScript(new ClassPathResource(initScriptPath)); try { LOGGER.debug("Loading script={} ...", initScriptPath); databasePopulator.populate(connection); } catch (Exception e) { LOGGER.warn( "Exception occured during database initilization : {}", e.getMessage()); } finally { if (connection != null) { connection.close(); } } } }
@PostConstruct public void init(){ if (namedParameterJdbcTemplate != null) { try { /* * if there is a user, data has already been loaded into the db */ String sql = "SELECT * FROM users"; List<String> list = namedParameterJdbcTemplate.query(sql, new RowMapper<String>() { @Override public String mapRow(ResultSet rs, int rowNum) throws SQLException { return rs.getString("username"); } }); if (list.isEmpty()) { ResourceDatabasePopulator rdp = new ResourceDatabasePopulator(); rdp.addScript(new ClassPathResource("db/initial-data.sql")); rdp.populate(dataSource.getConnection()); } } catch (SQLException e) { LOGGER.error("Could not load initial data.", e.getMessage()); } } }
resourceDatabasePopulator.populate(connection); } else { throw new UnsupportedOperationException("Undefined DatabaseProductName: " + name);
ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); populator.addScript(new ClassPathResource("test-data.sql")); populator.populate(dataSource.getConnection()); return populator;
private static DriverManagerDataSource dataSource; @BeforeClass public static void setupClass() throws Exception { ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); populator.addScript(new ClassPathResource("path/to/package/defaults.sql")); dataSource = new DriverManagerDataSource(); dataSource.setUrl("jdbc:hsqldb:mem:pgtest;sql.syntax_pgs=true"); dataSource.setUsername("SA"); Connection con = dataSource.getConnection(); assertNotNull(con); populator.populate(con); con.close(); }
dbPopulator.addScript(new ClassPathResource("/sql/quartz/tables_h2.sql")); dbPopulator.addScript(new ClassPathResource("/sql/model/schema_h2.sql")); dbPopulator.populate(con); newSchema = true; logger.info("Established H2 connection pool with new database");
/** * DriverName: * 1:MySQL Connector Java; * 2:Oracle JDBC driver; * 3:H2 JDBC Driver * @throws SQLException */ @PostConstruct public void initData() throws SQLException { String dbDriverName = getDBDriveName(); Logger.info("当前数据库驱动名称:"+dbDriverName); Logger.info("检查是否需要初始化脚本"); Query query = new Query("from User"); Long userCount = commonRepository.count(query.getCount(), new HashMap<String, Object>()); if (userCount == 0) { Logger.info("开始进行初始化脚本"); ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); populator.setSqlScriptEncoding("utf-8"); populator.addScript(dataScript); populator.populate(dataSource.getConnection()); Logger.info("初始化脚本已完成"); return; }else{ Logger.info("不需要初始化脚本"); } } /**
ResourceDatabasePopulator resourceDatabasePopulator = new ResourceDatabasePopulator(resource); logger.info("Executing SQL Scripts: {}", sqlFile); resourceDatabasePopulator.populate(connection); connection.commit(); } catch (SQLException e) {