예제 #1
0
<?php

/**
 * Converter script for mgd1 databases. Use at you own risk, and remember to backup before!
 */
if (count($argv) != 2) {
    die("Usage: php update_db.php midgardconffile\n");
}
if (!extension_loaded('midgard2')) {
    die("Midgard2 is not installed in your PHP environment.\n");
}
// Create a config file
$config = new midgard_config();
if (!$config->read_file($argv[1], false)) {
    die("Failed to load Midgard2 config file");
}
// Open a DB connection with the config
$midgard = midgard_connection::get_instance();
if (!$midgard->open_config($config)) {
    die("Failed to open Midgard database connection to {$argv[1]}: " . $midgard->get_error_string() . "\n");
}
// This will create any classes that might be missing
midgard_storage::create_base_storage();
echo "  Created base storage\n";
$re = new ReflectionExtension('midgard2');
$classes = $re->getClasses();
foreach ($classes as $refclass) {
    if (!$refclass->isSubclassOf('midgard_object')) {
        continue;
    }
    $type = $refclass->getName();
예제 #2
0
 public function run()
 {
     $config_file = "/etc/midgard2/conf.d/" . $this->_project_name;
     if (file_exists($config_file)) {
         switch ($this->prompt($config_file . " already exists, override?", 'n', array('y', 'n'))) {
             case 'y':
                 unlink($config_file);
                 $config = $this->_create_config($config_file);
                 break;
             default:
                 $config = new midgard_config();
                 if (!$config->read_file($this->_project_name, false)) {
                     $this->fail('Could not read config file ' . $config_file);
                 }
         }
     } else {
         $config = $this->_create_config($config_file);
     }
     // Open a DB connection with the config
     $midgard = midgard_connection::get_instance();
     if (!$midgard->open_config($config)) {
         $this->fail("Failed to open Midgard database connection to {$this->_project_name}: " . $midgard->get_error_string());
     }
     require_once 'tools/bootstrap.php';
     openpsa_prepare_database($config);
     openpsa_prepare_topics();
 }