protected void createTables(boolean dropTables, boolean dropUnused) {

    for (TableMetadata table :
        session.getCluster().getMetadata().getKeyspace(keyspaceName).getTables()) {
      if (dropTables) {
        if (dropUnused || mappingContext.usesTable(table)) {
          admin.dropTable(table.getName());
        }
      }
    }

    Collection<? extends CassandraPersistentEntity<?>> entities =
        converter.getMappingContext().getPersistentEntities();

    for (CassandraPersistentEntity<?> entity : entities) {
      admin.createTable(false, entity.getTableName(), entity.getType(), null /* TODO */);
    }
  }