title: Spring embeddeb db table already exists error
body: <p>I am trying run a spring boot application with an embedded db. During initialization of beans (because of some reason ?) my table creation script is called twice and second call fails with "table already exists" error. Below is my code, what can be the problem.</p>
  
  <pre><code>@Configuration
  public class AppConfig {
  
  private static final Logger LOG = LoggerFactory.getLogger(AppConfig.class);
  
  private static EmbeddedDatabase dataSource;
  
  @Bean
  public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
      return new DbPlaceholderConfigurer(dataSource());
  }
  
  
  @Bean
  public static EmbeddedDatabase dataSource() {
      if(dataSource == null) {
          EmbeddedDatabaseBuilder databaseBuilder = new EmbeddedDatabaseBuilder();
          databaseBuilder.addScript("classpath:schema.sql");
          //databaseBuilder.setName("test");
          databaseBuilder.setType(EmbeddedDatabaseType.H2);
          EmbeddedDatabase build = databaseBuilder.build();
          initPopulate(build);
          dataSource = build;
      }
      return dataSource;
  }
  
  private static void initPopulate(EmbeddedDatabase embeddedDatabase) {
      try {
          Connection connection = embeddedDatabase.getConnection();
          PreparedStatement prepareStatement;
          prepareStatement = connection.prepareStatement("INSERT INTO Settings VALUES (?,?,?)");
          prepareStatement.setInt(1, 1);
          prepareStatement.setString(2, "testKey");
          prepareStatement.setString(3, "testVal");
          prepareStatement.executeUpdate();
          connection.close();
      } catch (SQLException e) {
          LOG.error("Error ", e);
      }
  }
  }
  </code></pre>
  
  <p>Error log is below:</p>
  
  <pre><code>Caused by: org.h2.jdbc.JdbcSQLException: Table "SETTINGS" already exists; SQL   statement:
  CREATE TABLE Settings( id INT PRIMARY KEY, testKey VARCHAR(100), testValue VARCHAR(100) ) [42101-192]
  </code></pre>
  
  <p>Note: I can boot my application successfully by setting following property but i really curious why spring is calling the table creation script twice.</p>
  
  <pre><code>spring.datasource.continue-on-error=true
  </code></pre>
  
  <p>Note2: Table creation script(schema.sql) is like below:</p>
  
  <pre><code>create table contacts (
   id identity,
   firstname varChar(30) not null,
   lastName varChar(30) not null,
   phoneNumber varChar(20),
   emailAddress varChar(50)
  );
  </code></pre>