bootstrap.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. use n2n\core\N2N;
  3. use n2n\core\FileN2nCache;
  4. use n2n\io\IoUtils;
  5. use n2n\core\TypeLoader;
  6. ini_set('display_errors', 1);
  7. error_reporting(E_ALL);
  8. $pubPath = realpath(dirname(__FILE__) . '/../public');
  9. $appPath = realpath($pubPath . '/../app');
  10. $libPath = realpath($pubPath . '/../lib');
  11. $testPath = realpath($pubPath . '/../test');
  12. $varPath = realpath($pubPath . '/../var');
  13. set_include_path(implode(PATH_SEPARATOR, array($appPath, $libPath, $testPath, get_include_path())));
  14. define('N2N_STAGE', 'test');
  15. require __DIR__ . '/../vendor/autoload.php';
  16. TypeLoader::register(true,
  17. require __DIR__ . '/../vendor/composer/autoload_psr4.php',
  18. require __DIR__ . '/../vendor/composer/autoload_classmap.php');
  19. N2N::initialize($pubPath, $varPath, new FileN2nCache());
  20. $testSqlFsPath = N2N::getVarStore()->requestFileFsPath('bak', null, null, 'backup.sql', false, false, false);
  21. $sql = IoUtils::getContents($testSqlFsPath);
  22. $sql = preg_replace('/^(INSERT|VALUES|\().*/m', '', $sql);
  23. $sql = preg_replace('/^ALTER TABLE .* ADD (INDEX|UNIQUE|FULLTEXT).*/m', '', $sql);
  24. $sql = preg_replace('/ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE [^;]+/', '', $sql);
  25. $sql = preg_replace('/\\,(\\s)*PRIMARY KEY.*/m', '', $sql);
  26. $sql = preg_replace('/ENUM\([^\)]+\)/', 'VARCHAR(255)', $sql);
  27. $sql = preg_replace('/INT (UNSIGNED )?NOT NULL AUTO_INCREMENT/', 'INTEGER PRIMARY KEY AUTOINCREMENT', $sql);
  28. $sql = preg_replace("/[\r\n]+/", "\n", $sql);
  29. $sql = str_replace('UNSIGNED ', '', $sql);
  30. file_put_contents('huii.sql', $sql);
  31. N2N::getPdoPool()->getPdo()->exec($sql);