static function setUp() { try { Doctrine_Core::dropDatabases(); } catch (Exception $e) { } Doctrine_Manager::connection()->clear(); try { Doctrine_Core::createDatabases(); } catch (Exception $e) { } Doctrine_Core::loadModels(APPLICATION_PATH . '/models', Doctrine_Core::MODEL_LOADING_AGGRESSIVE); Doctrine_Core::createTablesFromModels(); }
<?php $_test_dir = realpath(dirname(__FILE__) . '/..'); // configuration require_once dirname(__FILE__) . '/../../../../config/ProjectConfiguration.class.php'; $configuration = ProjectConfiguration::hasActive() ? ProjectConfiguration::getActive() : new ProjectConfiguration(realpath($_test_dir . '/..')); // autoloader $autoload = sfSimpleAutoload::getInstance(sfConfig::get('sf_cache_dir') . '/project_autoload.cache'); $autoload->loadConfiguration(sfFinder::type('file')->name('autoload.yml')->in(array(sfConfig::get('sf_symfony_lib_dir') . '/config/config', sfConfig::get('sf_config_dir')))); $autoload->register(); // lime include $configuration->getSymfonyLibDir() . '/vendor/lime/lime.php'; $configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'test', true); //Remove test dirs $rootdir = sfConfig::get('sf_web_dir') . DIRECTORY_SEPARATOR . 'test_root'; if (is_dir($rootdir)) { $files = sfFinder::type('any')->maxdepth(4)->in($rootdir); array_unshift($files, $rootdir); $fs = new sfFileSystem(); $fs->remove($files); } new sfDatabaseManager($configuration); Doctrine_Core::dropDatabases(); Doctrine_Core::createDatabases(); Doctrine_Core::createTablesFromModels(sfConfig::get('sf_lib_dir') . '/model');
public static function syncdb($apps = null, $drop_database = false, $append = true) { if (!self::$inited || !self::$connections) { self::init(); } if (!$apps) { $apps = ini('base/INSTALLED_APPS'); } if (!$apps) { return true; } if ($drop_database) { Doctrine_Core::dropDatabases(); Doctrine_Core::createDatabases(); } foreach ((array) $apps as $k => $app) { $app = str_replace('.', '/', $app); try { /* * Generate the models */ if (isset($_GET['use_yaml'])) { $schemas = Package::get_file(sprintf('applications/%s/%s', $app, 'schemas.yml')); if (!is_file($schemas)) { continue; } Doctrine_Core::generateModelsFromYaml($schemas, Package::get_folder(sprintf('applications/%s/models', $app)), self::$_generate_options); } else { try { import(sprintf('applications/%s/models/generated/*', $app)); } catch (DoesNotExistsException $e) { continue; } } /* * syncdb */ Doctrine_Core::createTablesFromModels(Package::get_folder(sprintf('applications/%s/models', $app)), self::$_generate_options); /* * Insert test data */ $dir = Package::get_folder(sprintf('applications/%s/fixtures', $app)); if (is_dir($dir)) { Doctrine_Core::loadData($dir, $append); } } catch (PDOException $e) { continue; } } }