コード例 #1
0
 /**
  * Renames a table in the database.
  *
  * @param   string  $oldTable  The name of the table to be renamed
  * @param   string  $newTable  The new name for the table.
  * @param   string  $backup    Non-MySQL: Table prefix
  * @param   string  $prefix    Non-MySQL: For the table - used to rename constraints in non-mysql databases
  *
  * @return  self               Returns this object to support chaining.
  *
  * @throws  \RuntimeException
  */
 public function renameTable($oldTable, $newTable, $backup = null, $prefix = null)
 {
     $this->_db->renameTable($oldTable, $newTable, $backup, $prefix);
     return $this;
 }
コード例 #2
0
ファイル: database.php プロジェクト: klas/joomla-cms
 /**
  * Method to backup all tables in a database with a given prefix.
  *
  * @param   JDatabaseDriver  $db      JDatabaseDriver object.
  * @param   string           $prefix  Database table prefix.
  *
  * @return  boolean  True on success.
  *
  * @since    3.1
  */
 public function backupDatabase($db, $prefix)
 {
     $return = true;
     $backup = 'bak_' . $prefix;
     // Get the tables in the database.
     $tables = $db->getTableList();
     if ($tables) {
         foreach ($tables as $table) {
             // If the table uses the given prefix, back it up.
             if (strpos($table, $prefix) === 0) {
                 // Backup table name.
                 $backupTable = str_replace($prefix, $backup, $table);
                 // Drop the backup table.
                 try {
                     $db->dropTable($backupTable, true);
                 } catch (RuntimeException $e) {
                     JFactory::getApplication()->enqueueMessage(JText::sprintf('INSTL_DATABASE_ERROR_BACKINGUP', $e->getMessage()), 'notice');
                     $return = false;
                 }
                 // Rename the current table to the backup table.
                 try {
                     $db->renameTable($table, $backupTable, $backup, $prefix);
                 } catch (RuntimeException $e) {
                     JFactory::getApplication()->enqueueMessage(JText::sprintf('INSTL_DATABASE_ERROR_BACKINGUP', $e->getMessage()), 'notice');
                     $return = false;
                 }
             }
         }
     }
     return $return;
 }
コード例 #3
0
ファイル: database.php プロジェクト: rasiodesign/joomla-cms
 /**
  * Method to backup all tables in a database with a given prefix.
  *
  * @param   JDatabaseDriver  $db      JDatabaseDriver object.
  * @param   string           $name    Name of the database to process.
  * @param   string           $prefix  Database table prefix.
  *
  * @return  boolean  True on success.
  *
  * @since	3.0
  */
 public function backupDatabase($db, $name, $prefix)
 {
     $return = true;
     $backup = 'bak_' . $prefix;
     // Get the tables in the database.
     $tables = $db->getTableList();
     if ($tables) {
         foreach ($tables as $table) {
             // If the table uses the given prefix, back it up.
             if (strpos($table, $prefix) === 0) {
                 // Backup table name.
                 $backupTable = str_replace($prefix, $backup, $table);
                 // Drop the backup table.
                 try {
                     $db->dropTable($backupTable, true);
                 } catch (RuntimeException $e) {
                     $this->setError($e->getMessage());
                     $return = false;
                 }
                 // Rename the current table to the backup table.
                 try {
                     $db->renameTable($table, $backupTable, $backup, $prefix);
                 } catch (RuntimeException $e) {
                     $this->setError($e->getMessage());
                     $return = false;
                 }
             }
         }
     }
     return $return;
 }