How to load sql function on startup with Spring?

I am using Spring-Boot

for my application with hibernate.hbm2ddl.=update

.

How can I ensure that the sql script is executed on startup? Thus, I want to make sure that in is FUNCTION .. LANGUAGE plpgsql

present in my postgresql

db.

+3


source to share


1 answer


Using XML .

<jdbc:initialize-database data-source="dataSource">
  <jdbc:script location="classpath:com/foo/sql/db-schema.sql"/>
  <jdbc:script location="classpath:com/foo/sql/db-test-data.sql"/>
</jdbc:initialize-database>

      



Using Annotations (the following example should be placed in a class @Configuration

)

@Value("classpath:com/foo/sql/db-schema.sql")
private Resource schemaScript;

@Value("classpath:com/foo/sql/db-test-data.sql")
private Resource dataScript;

@Bean
public DataSourceInitializer dataSourceInitializer(final DataSource dataSource) {
    final DataSourceInitializer initializer = new DataSourceInitializer();
    initializer.setDataSource(dataSource);
    initializer.setDatabasePopulator(databasePopulator());
    return initializer;
}

private DatabasePopulator databasePopulator() {
    final ResourceDatabasePopulator populator = new ResourceDatabasePopulator();
    populator.addScript(schemaScript);
    populator.addScript(dataScript);
    return populator;
}

      

+6


source







All Articles