/**
  * Before migration callback
  *
  * @param string $direction, up or down direction of migration process
  * @return boolean Should process continue
  * @access public
  */
 public function before($direction)
 {
     $success = true;
     if ($direction === 'up') {
         if (Configure::read('Croogo.installed')) {
             CakePlugin::load('Install');
             $dm = new DataMigration();
             $dir = CakePlugin::path('Install') . 'Config' . DS . 'Data' . DS;
             $dm->loadFile($dir . 'SettingData.php', array('extract' => sprintf('{n}[key=%s]', $this->_assetTimestamp)));
             CakePlugin::unload('Install');
         }
     } else {
         $Setting = ClassRegistry::init('Settings.Setting');
         $success = $Setting->deleteKey($this->_assetTimestamp);
     }
     return $success;
 }
Ejemplo n.º 2
0
 /**
  * Before migration callback
  *
  * @param string $direction, up or down direction of migration process
  * @return boolean Should process continue
  * @access public
  */
 public function before($direction)
 {
     $success = true;
     if ($direction === 'up') {
         if (Configure::read('Croogo.installed')) {
             $settingsToUpdate = array('Site.locale', 'Site.admin_theme', 'Site.home_url');
             CakePlugin::load('Install');
             $dm = new DataMigration();
             $dir = CakePlugin::path('Install') . 'Config' . DS . 'Data' . DS;
             foreach ($settingsToUpdate as $key) {
                 $dm->loadFile($dir . 'SettingData.php', array('extract' => sprintf('{n}[key=%s]', $key)));
             }
             CakePlugin::unload('Install');
         }
     }
     return $success;
 }
Ejemplo n.º 3
0
 /**
  * Run Migrations and add data in table
  *
  * @return bool True if migrations have succeeded
  */
 public function setupDatabase()
 {
     $plugins = Configure::read('Core.corePlugins');
     $migrationsSucceed = true;
     foreach ($plugins as $plugin) {
         $migrationsSucceed = $this->runMigrations($plugin);
         if (!$migrationsSucceed) {
             $this->log('Migrations failed for ' . $plugin, LOG_CRIT);
             break;
         }
     }
     if ($migrationsSucceed) {
         $DataMigration = new DataMigration();
         $path = App::pluginPath('Install') . DS . 'Config' . DS . 'Data' . DS;
         $DataMigration->load($path);
     }
     return $migrationsSucceed;
 }
Ejemplo n.º 4
0
 /**
  * Prepares data in Config/Data/ required for install plugin
  *
  * Usage: ./Console/cake extensions.data_migration data table_name_here
  */
 public function data()
 {
     if (isset($this->params['plugin'])) {
         $plugin = $this->params['plugin'];
     }
     $connection = 'default';
     if (isset($this->params['connection'])) {
         $connection = $this->params['connection'];
     }
     $table = trim($this->args['0']);
     $name = Inflector::camelize(Inflector::singularize($table));
     $root = isset($plugin) ? CakePlugin::path($plugin) : APP;
     $output = $root . 'Config' . DS . 'Data' . DS . $name . 'Data.php';
     $records = array();
     $options = array('model' => array('name' => $name, 'table' => $table, 'connection' => $connection), 'output' => $output);
     $DataMigration = new DataMigration();
     $success = $DataMigration->generate('all', array('recursive' => -1), $options);
     if ($success) {
         $this->out('<success>New file generated</success>: ' . str_replace(APP, '', $output));
     } else {
         $this->err('<error>Failed generating file for table</error>: ' . $table);
     }
 }
Ejemplo n.º 5
0
<?php

require_once "../framework2/Walkntrade.php";
class DataMigration extends Walkntrade
{
    public function __construct()
    {
        parent::__construct();
    }
    public function genThreadIndices()
    {
        if (!($stmt = $this->getUserConnection()->prepare("SELECT id FROM `users`;"))) {
            echo "prepare failed";
            return;
        }
        $stmt->execute();
        $stmt->bind_result($uid);
        while ($stmt->fetch()) {
            if ($createInboxSTMT = $this->getThread_indexConnection()->prepare("\n\t\t\t\t\tCREATE TABLE `wtonline_thread_index`.`{$uid}` (\n\t\t\t\t  `thread_id` VARCHAR(20) NOT NULL,\n\t\t\t\t  `last_message` VARCHAR(100) NOT NULL,\n\t\t\t\t  `last_user_id` INT(50) NOT NULL,\n\t\t\t\t  `post_id` VARCHAR(45) NOT NULL,\n\t\t\t\t  `post_title` VARCHAR(100) NULL,\n\t\t\t\t  `datetime` DATETIME NOT NULL,\n\t\t\t\t  `new_messages` INT(2) NOT NULL,\n\t\t\t\t  `associated_with` INT(50) NOT NULL,\n\t\t\t\t  `locked` BIT NOT NULL,\n\t\t\t\t  `hidden` BIT NOT NULL,\n\t\t\t\t  PRIMARY KEY (`thread_id`),\n\t\t\t\t  UNIQUE INDEX `thread_id_UNIQUE` (`thread_id` ASC));\n\t\t\t\t")) {
                $createInboxSTMT->execute();
                $createInboxSTMT->close();
            }
        }
        echo "generated thread indices for each user!";
    }
}
$dm = new DataMigration();
$dm->genThreadIndices();