private function get_migrations() { $migrations = array(); foreach (moojon_files::directory_files(moojon_paths::get_project_migrations_directory()) as $migration) { $migration_file = moojon_migrator::get_migration_class_name($migration); $migrations[] = substr($migration_file, 0, strlen($migration_file) - 10); } return $migrations; }
public static function run() { self::find_or_create_schema_migrations_table(); $migrations = array(); foreach (schema_migration::read(null, 'version') as $migration) { $migrations[] = $migration->version; } $migration_files = moojon_files::directory_files(moojon_paths::get_project_migrations_directory()); sort($migration_files); foreach ($migration_files as $migration_file) { if (!in_array(basename($migration_file), $migrations)) { self::run_migration($migration_file, 'up'); } } }
public static function migration($migration) { $filename = date('YmdHis') . ".{$migration}.migration.class.php"; moojon_files::attempt_mkdir(moojon_paths::get_project_models_directory()); moojon_files::attempt_mkdir(moojon_paths::get_project_migrations_directory()); self::run(moojon_paths::get_moojon_templates_directory() . 'migration.template', moojon_paths::get_project_migrations_directory() . "{$filename}", array('migration' => $migration), false, true); }