<?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();
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(); }