/**
  * Create a list of migrations to execute for a particular plugin.
  *
  * @param BWP_Framework_V3 $plugin
  * @return BWP_Framework_Migration[]
  */
 public static function create_migrations(BWP_Framework_V3 $plugin)
 {
     $finder = new ehough_finder_Finder();
     $migration_directory = dirname($plugin->plugin_file) . '/migrations';
     // no migrations, nothing to do
     if (!file_exists($migration_directory)) {
         return array();
     }
     $iterator = $finder->files()->name('/^[0-9]{5,}(-(beta|rc)[0-9]+)?(_[0-9]{5,}(-(beta|rc)[0-9]+)?)?\\.php$/')->depth(0)->in($migration_directory);
     $migrations = array();
     /* @var $file SplFileInfo */
     foreach ($iterator as $file) {
         $filepath = $migration_directory . '/' . $file->getFilename();
         if (!($migration = self::create_migration($plugin, $filepath))) {
             continue;
         }
         $migrations[] = $migration;
     }
     usort($migrations, array('BWP_Framework_Migration_Factory', 'compare_migrations'));
     return $migrations;
 }