Version Description
- Added support for dynamically recognizing Site URL and Home URL on the import page
- Fixed a bug when maximum uploaded size is exceeded
- Fixed a bug when exporting big database tables
Download this release
Release Info
Developer | bangelov |
Plugin | All-in-One WP Migration |
Version | 1.8.0 |
Comparing to | |
See all releases |
Code changes from version 1.7.2 to 1.8.0
- all-in-one-wp-migration.php +1 -1
- constants.php +1 -1
- lib/model/class-ai1wm-export.php +28 -19
- lib/model/class-ai1wm-file.php +2 -2
- lib/model/class-ai1wm-import.php +74 -18
- lib/vendor/mysqldump-factory/mysqldump-factory/lib/MysqlDumpFactory.php +2 -2
- lib/vendor/mysqldump-factory/mysqldump-factory/lib/MysqlDumpInterface.php +5 -5
- lib/vendor/mysqldump-factory/mysqldump-factory/lib/MysqlDumpPDO.php +4 -4
- lib/vendor/mysqldump-factory/mysqldump-factory/lib/MysqlDumpSQL.php +4 -4
- lib/vendor/mysqldump-factory/mysqldump-factory/lib/MysqlFileAdapter.php +2 -2
- lib/vendor/mysqldump-factory/mysqldump-factory/lib/MysqlQueryAdapter.php +2 -2
- lib/vendor/storage-factory/storage-factory/lib/StorageAbstract.php +2 -2
- lib/vendor/storage-factory/storage-factory/lib/StorageArea.php +8 -6
- lib/vendor/storage-factory/storage-factory/lib/StorageDirectory.php +13 -5
- lib/vendor/storage-factory/storage-factory/lib/StorageFile.php +19 -8
- lib/view/export/index.php +0 -11
- readme.txt +6 -1
all-in-one-wp-migration.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Description: Migration tool for all your blog data
|
6 |
* Author: ServMask
|
7 |
* Author URI: http://servmask.com/
|
8 |
-
* Version: 1.
|
9 |
*
|
10 |
* Copyright (C) 2013 ServMask LLC
|
11 |
*
|
5 |
* Description: Migration tool for all your blog data
|
6 |
* Author: ServMask
|
7 |
* Author URI: http://servmask.com/
|
8 |
+
* Version: 1.8.0
|
9 |
*
|
10 |
* Copyright (C) 2013 ServMask LLC
|
11 |
*
|
constants.php
CHANGED
@@ -26,7 +26,7 @@
|
|
26 |
// ==================
|
27 |
// = Plugin VERSION =
|
28 |
// ==================
|
29 |
-
define( 'AI1WM_VERSION', '1.
|
30 |
|
31 |
// ===============
|
32 |
// = Plugin Name =
|
26 |
// ==================
|
27 |
// = Plugin VERSION =
|
28 |
// ==================
|
29 |
+
define( 'AI1WM_VERSION', '1.8.0' );
|
30 |
|
31 |
// ===============
|
32 |
// = Plugin Name =
|
lib/model/class-ai1wm-export.php
CHANGED
@@ -42,14 +42,18 @@ class Ai1wm_Export
|
|
42 |
*/
|
43 |
public function export( StorageArea $storage, array $options = array() ) {
|
44 |
global $wp_version;
|
45 |
-
$options['plugin_version']
|
46 |
-
$options['wp_version']
|
47 |
-
$options['php_version']
|
48 |
-
$options['php_uname']
|
49 |
-
$options['
|
50 |
-
$options['
|
51 |
-
$options['
|
52 |
-
$options['
|
|
|
|
|
|
|
|
|
53 |
|
54 |
// Export last options
|
55 |
update_option( self::EXPORT_LAST_OPTIONS, $options );
|
@@ -121,8 +125,8 @@ class Ai1wm_Export
|
|
121 |
public function prepare_database( StorageArea $storage, array $options = array() ) {
|
122 |
global $wpdb;
|
123 |
|
124 |
-
$file
|
125 |
-
$
|
126 |
|
127 |
// Set include tables
|
128 |
$includeTables = array();
|
@@ -187,7 +191,7 @@ class Ai1wm_Export
|
|
187 |
}
|
188 |
|
189 |
// Set dump options
|
190 |
-
$db->setFileName( $
|
191 |
->setIncludeTables( $includeTables )
|
192 |
->setExcludeTables( $excludeTables )
|
193 |
->setNoTableData( $noTableData )
|
@@ -214,21 +218,23 @@ class Ai1wm_Export
|
|
214 |
}
|
215 |
// Do String Replacement
|
216 |
if ( $old_values && $new_values ) {
|
217 |
-
$
|
218 |
$storage,
|
219 |
-
$
|
220 |
$old_values,
|
221 |
$new_values
|
222 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
223 |
}
|
224 |
}
|
225 |
|
226 |
-
|
227 |
-
return $file->preg_replace_file(
|
228 |
-
$storage,
|
229 |
-
$output_file,
|
230 |
-
'/s:(\d+):([\\\\]?"[\\\\]?"|[\\\\]?"((.*?)[^\\\\])[\\\\]?");/'
|
231 |
-
);
|
232 |
}
|
233 |
|
234 |
/**
|
@@ -304,6 +310,9 @@ class Ai1wm_Export
|
|
304 |
public function prepare_package( array $options = array() ) {
|
305 |
$config = array(
|
306 |
'Version' => AI1WM_VERSION,
|
|
|
|
|
|
|
307 |
);
|
308 |
|
309 |
return json_encode( $config );
|
42 |
*/
|
43 |
public function export( StorageArea $storage, array $options = array() ) {
|
44 |
global $wp_version;
|
45 |
+
$options['plugin_version'] = AI1WM_VERSION;
|
46 |
+
$options['wp_version'] = $wp_version;
|
47 |
+
$options['php_version'] = phpversion();
|
48 |
+
$options['php_uname'] = php_uname();
|
49 |
+
$options['max_execution_time'] = ini_get( 'max_execution_time' );
|
50 |
+
$options['memory_limit'] = ini_get( 'memory_limit' );
|
51 |
+
$options['memory_get_peak_usage'] = memory_get_peak_usage();
|
52 |
+
$options['memory_get_usage'] = memory_get_usage();
|
53 |
+
$options['ZipArchive'] = class_exists( 'ZipArchive' ) ? 1 : 0;
|
54 |
+
$options['ZLIB_installed'] = function_exists( 'gzopen' ) ? 1 : 0;
|
55 |
+
$options['PDO_available'] = class_exists( 'PDO' ) ? 1 : 0;
|
56 |
+
$options['home_url'] = home_url();
|
57 |
|
58 |
// Export last options
|
59 |
update_option( self::EXPORT_LAST_OPTIONS, $options );
|
125 |
public function prepare_database( StorageArea $storage, array $options = array() ) {
|
126 |
global $wpdb;
|
127 |
|
128 |
+
$file = new Ai1wm_File;
|
129 |
+
$database_file = $storage->makeFile();
|
130 |
|
131 |
// Set include tables
|
132 |
$includeTables = array();
|
191 |
}
|
192 |
|
193 |
// Set dump options
|
194 |
+
$db->setFileName( $database_file->getAs( 'string' ) )
|
195 |
->setIncludeTables( $includeTables )
|
196 |
->setExcludeTables( $excludeTables )
|
197 |
->setNoTableData( $noTableData )
|
218 |
}
|
219 |
// Do String Replacement
|
220 |
if ( $old_values && $new_values ) {
|
221 |
+
$database_file = $file->str_replace_file(
|
222 |
$storage,
|
223 |
+
$database_file,
|
224 |
$old_values,
|
225 |
$new_values
|
226 |
);
|
227 |
+
|
228 |
+
// Do find and replace
|
229 |
+
$database_file = $file->preg_replace_file(
|
230 |
+
$storage,
|
231 |
+
$database_file,
|
232 |
+
'/s:(\d+):([\\\\]?"[\\\\]?"|[\\\\]?"((.*?)[^\\\\])[\\\\]?");/'
|
233 |
+
);
|
234 |
}
|
235 |
}
|
236 |
|
237 |
+
return $database_file;
|
|
|
|
|
|
|
|
|
|
|
238 |
}
|
239 |
|
240 |
/**
|
310 |
public function prepare_package( array $options = array() ) {
|
311 |
$config = array(
|
312 |
'Version' => AI1WM_VERSION,
|
313 |
+
'SiteURL' => site_url(),
|
314 |
+
'HomeURL' => home_url(),
|
315 |
+
'Domain' => parse_url( home_url(), PHP_URL_HOST ),
|
316 |
);
|
317 |
|
318 |
return json_encode( $config );
|
lib/model/class-ai1wm-file.php
CHANGED
@@ -32,8 +32,8 @@ class Ai1wm_File
|
|
32 |
*
|
33 |
* @param StorageArea $storage Storage instance
|
34 |
* @param StorageFile $file StorageFile instance
|
35 |
-
* @param
|
36 |
-
* @param
|
37 |
* @return StorageFile StorageFile instance
|
38 |
*/
|
39 |
public function str_replace_file( StorageArea $storage, StorageFile $file, $pattern, $replacement ) {
|
32 |
*
|
33 |
* @param StorageArea $storage Storage instance
|
34 |
* @param StorageFile $file StorageFile instance
|
35 |
+
* @param mixed $pattern Find and replace pattern
|
36 |
+
* @param mixed $replacement Replace term
|
37 |
* @return StorageFile StorageFile instance
|
38 |
*/
|
39 |
public function str_replace_file( StorageArea $storage, StorageFile $file, $pattern, $replacement ) {
|
lib/model/class-ai1wm-import.php
CHANGED
@@ -26,7 +26,7 @@
|
|
26 |
class Ai1wm_Import
|
27 |
{
|
28 |
const MAX_FILE_SIZE = '512MB';
|
29 |
-
const MAX_CHUNK_SIZE = '
|
30 |
const MAX_CHUNK_RETRIES = 10;
|
31 |
const MAINTENANCE_MODE = 'ai1wm_maintenance_mode';
|
32 |
|
@@ -117,22 +117,11 @@ class Ai1wm_Import
|
|
117 |
// Enable maintenance mode
|
118 |
$this->maintenance_mode( true );
|
119 |
|
120 |
-
//
|
121 |
-
$
|
122 |
-
$upload_basedir = $upload_dir['basedir'] . DIRECTORY_SEPARATOR;
|
123 |
-
if ( ! is_dir( $upload_basedir ) ) {
|
124 |
-
mkdir( $upload_basedir );
|
125 |
-
}
|
126 |
-
|
127 |
-
// Themes base directory
|
128 |
-
$themes_dir = get_theme_root();
|
129 |
-
$themes_basedir = $themes_dir . DIRECTORY_SEPARATOR;
|
130 |
-
if ( ! is_dir( $themes_basedir ) ) {
|
131 |
-
mkdir( $themes_basedir );
|
132 |
-
}
|
133 |
|
134 |
// Database import
|
135 |
-
if (
|
136 |
// Backup database
|
137 |
$model = new Ai1wm_Export;
|
138 |
$database_file = $model->prepare_database( $storage );
|
@@ -155,17 +144,64 @@ class Ai1wm_Import
|
|
155 |
$db = MysqlDumpFactory::makeMysqlDump( DB_HOST, DB_USER, DB_PASSWORD, DB_NAME, false );
|
156 |
}
|
157 |
|
158 |
-
//
|
159 |
-
$db->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
|
161 |
// Import database
|
162 |
$db->setOldTablePrefix( AI1WM_TABLE_PREFIX )
|
163 |
->setNewTablePrefix( $wpdb->prefix )
|
164 |
-
->import( $
|
165 |
}
|
166 |
|
167 |
// Media import
|
168 |
if ( is_dir( $extract_to . Ai1wm_Export::EXPORT_MEDIA_NAME ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
// Backup media files
|
170 |
$backup_media_to = $storage->makeDirectory()->getAs( 'string' );
|
171 |
|
@@ -180,6 +216,13 @@ class Ai1wm_Import
|
|
180 |
|
181 |
// Themes import
|
182 |
if ( is_dir( $extract_to . Ai1wm_Export::EXPORT_THEMES_NAME ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
// Backup themes files
|
184 |
$backup_themes_to = $storage->makeDirectory()->getAs( 'string' );
|
185 |
|
@@ -255,6 +298,19 @@ class Ai1wm_Import
|
|
255 |
return true;
|
256 |
}
|
257 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
258 |
/**
|
259 |
* Display message for upload error code
|
260 |
*
|
26 |
class Ai1wm_Import
|
27 |
{
|
28 |
const MAX_FILE_SIZE = '512MB';
|
29 |
+
const MAX_CHUNK_SIZE = '500KB';
|
30 |
const MAX_CHUNK_RETRIES = 10;
|
31 |
const MAINTENANCE_MODE = 'ai1wm_maintenance_mode';
|
32 |
|
117 |
// Enable maintenance mode
|
118 |
$this->maintenance_mode( true );
|
119 |
|
120 |
+
// Parse package config file
|
121 |
+
$config = $this->parse_package( $extract_to . Ai1wm_Export::EXPORT_PACKAGE_NAME );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
|
123 |
// Database import
|
124 |
+
if ( is_file( $extract_to . Ai1wm_Export::EXPORT_DATABASE_NAME ) ) {
|
125 |
// Backup database
|
126 |
$model = new Ai1wm_Export;
|
127 |
$database_file = $model->prepare_database( $storage );
|
144 |
$db = MysqlDumpFactory::makeMysqlDump( DB_HOST, DB_USER, DB_PASSWORD, DB_NAME, false );
|
145 |
}
|
146 |
|
147 |
+
// Flush database
|
148 |
+
$db->flush();
|
149 |
+
|
150 |
+
$old_values = array();
|
151 |
+
$new_values = array();
|
152 |
+
|
153 |
+
// Get Site URL
|
154 |
+
if ( isset( $config['SiteURL'] ) && ( $config['SiteURL'] != site_url() ) ) {
|
155 |
+
$old_values[] = $config['SiteURL'];
|
156 |
+
$new_values[] = site_url();
|
157 |
+
}
|
158 |
+
|
159 |
+
// Get Home URL
|
160 |
+
if ( isset( $config['HomeURL'] ) && ( $config['HomeURL'] != home_url() ) ) {
|
161 |
+
$old_values[] = $config['HomeURL'];
|
162 |
+
$new_values[] = home_url();
|
163 |
+
}
|
164 |
+
|
165 |
+
// Get Domain
|
166 |
+
if ( isset( $config['Domain'] ) && ( $config['Domain'] != ( $domain = parse_url( home_url(), PHP_URL_HOST ) ) ) ) {
|
167 |
+
$old_values[] = $config['Domain'];
|
168 |
+
$new_values[] = $domain;
|
169 |
+
}
|
170 |
+
|
171 |
+
$file = new Ai1wm_File;
|
172 |
+
$database_file = $storage->makeFile( Ai1wm_Export::EXPORT_DATABASE_NAME, $extract_to );
|
173 |
+
|
174 |
+
// Replace Old/New Values
|
175 |
+
if ( $old_values && $new_values ) {
|
176 |
+
$database_file = $file->str_replace_file(
|
177 |
+
$storage,
|
178 |
+
$database_file,
|
179 |
+
$old_values,
|
180 |
+
$new_values
|
181 |
+
);
|
182 |
+
|
183 |
+
$database_file = $file->preg_replace_file(
|
184 |
+
$storage,
|
185 |
+
$database_file,
|
186 |
+
'/s:(\d+):([\\\\]?"[\\\\]?"|[\\\\]?"((.*?)[^\\\\])[\\\\]?");/'
|
187 |
+
);
|
188 |
+
}
|
189 |
|
190 |
// Import database
|
191 |
$db->setOldTablePrefix( AI1WM_TABLE_PREFIX )
|
192 |
->setNewTablePrefix( $wpdb->prefix )
|
193 |
+
->import( $database_file->getAs( 'string' ) );
|
194 |
}
|
195 |
|
196 |
// Media import
|
197 |
if ( is_dir( $extract_to . Ai1wm_Export::EXPORT_MEDIA_NAME ) ) {
|
198 |
+
// Media base directory
|
199 |
+
$upload_dir = wp_upload_dir();
|
200 |
+
$upload_basedir = $upload_dir['basedir'] . DIRECTORY_SEPARATOR;
|
201 |
+
if ( ! is_dir( $upload_basedir ) ) {
|
202 |
+
mkdir( $upload_basedir );
|
203 |
+
}
|
204 |
+
|
205 |
// Backup media files
|
206 |
$backup_media_to = $storage->makeDirectory()->getAs( 'string' );
|
207 |
|
216 |
|
217 |
// Themes import
|
218 |
if ( is_dir( $extract_to . Ai1wm_Export::EXPORT_THEMES_NAME ) ) {
|
219 |
+
// Themes base directory
|
220 |
+
$themes_dir = get_theme_root();
|
221 |
+
$themes_basedir = $themes_dir . DIRECTORY_SEPARATOR;
|
222 |
+
if ( ! is_dir( $themes_basedir ) ) {
|
223 |
+
mkdir( $themes_basedir );
|
224 |
+
}
|
225 |
+
|
226 |
// Backup themes files
|
227 |
$backup_themes_to = $storage->makeDirectory()->getAs( 'string' );
|
228 |
|
298 |
return true;
|
299 |
}
|
300 |
|
301 |
+
/**
|
302 |
+
* Parse package config file
|
303 |
+
*
|
304 |
+
* @param string $file Path to package config file
|
305 |
+
* @return array Config parameters
|
306 |
+
*/
|
307 |
+
public function parse_package( $file ) {
|
308 |
+
// Get config file
|
309 |
+
$data = file_get_contents( $file );
|
310 |
+
|
311 |
+
return json_decode( $data, true );
|
312 |
+
}
|
313 |
+
|
314 |
/**
|
315 |
* Display message for upload error code
|
316 |
*
|
lib/vendor/mysqldump-factory/mysqldump-factory/lib/MysqlDumpFactory.php
CHANGED
@@ -29,7 +29,7 @@
|
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
32 |
-
* @version GIT: 1.
|
33 |
* @link https://github.com/yani-/mysqldump-factory/
|
34 |
*/
|
35 |
|
@@ -42,7 +42,7 @@
|
|
42 |
* @author Bobby Angelov <bobby@servmask.com>
|
43 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
44 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
45 |
-
* @version GIT: 1.
|
46 |
* @link https://github.com/yani-/mysqldump-factory/
|
47 |
*/
|
48 |
class MysqlDumpFactory
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
32 |
+
* @version GIT: 1.2.0
|
33 |
* @link https://github.com/yani-/mysqldump-factory/
|
34 |
*/
|
35 |
|
42 |
* @author Bobby Angelov <bobby@servmask.com>
|
43 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
44 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
45 |
+
* @version GIT: 1.2.0
|
46 |
* @link https://github.com/yani-/mysqldump-factory/
|
47 |
*/
|
48 |
class MysqlDumpFactory
|
lib/vendor/mysqldump-factory/mysqldump-factory/lib/MysqlDumpInterface.php
CHANGED
@@ -29,7 +29,7 @@
|
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
32 |
-
* @version GIT: 1.
|
33 |
* @link https://github.com/yani-/mysqldump-factory/
|
34 |
*/
|
35 |
|
@@ -42,12 +42,12 @@
|
|
42 |
* @author Bobby Angelov <bobby@servmask.com>
|
43 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
44 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
45 |
-
* @version GIT: 1.
|
46 |
* @link https://github.com/yani-/mysqldump-factory/
|
47 |
*/
|
48 |
interface MysqlDumpInterface
|
49 |
{
|
50 |
-
const MAXLINESIZE =
|
51 |
|
52 |
/**
|
53 |
* Define MySQL credentials for the current connection
|
@@ -203,11 +203,11 @@ interface MysqlDumpInterface
|
|
203 |
public function getExtendedInsert();
|
204 |
|
205 |
/**
|
206 |
-
*
|
207 |
*
|
208 |
* @return void
|
209 |
*/
|
210 |
-
public function
|
211 |
|
212 |
/**
|
213 |
* Import database from file
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
32 |
+
* @version GIT: 1.2.0
|
33 |
* @link https://github.com/yani-/mysqldump-factory/
|
34 |
*/
|
35 |
|
42 |
* @author Bobby Angelov <bobby@servmask.com>
|
43 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
44 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
45 |
+
* @version GIT: 1.2.0
|
46 |
* @link https://github.com/yani-/mysqldump-factory/
|
47 |
*/
|
48 |
interface MysqlDumpInterface
|
49 |
{
|
50 |
+
const MAXLINESIZE = 200000;
|
51 |
|
52 |
/**
|
53 |
* Define MySQL credentials for the current connection
|
203 |
public function getExtendedInsert();
|
204 |
|
205 |
/**
|
206 |
+
* Flush database
|
207 |
*
|
208 |
* @return void
|
209 |
*/
|
210 |
+
public function flush();
|
211 |
|
212 |
/**
|
213 |
* Import database from file
|
lib/vendor/mysqldump-factory/mysqldump-factory/lib/MysqlDumpPDO.php
CHANGED
@@ -29,7 +29,7 @@
|
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
32 |
-
* @version GIT: 1.
|
33 |
* @link https://github.com/yani-/mysqldump-factory/
|
34 |
*/
|
35 |
|
@@ -46,7 +46,7 @@ require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'MysqlFileAdapter.php';
|
|
46 |
* @author Bobby Angelov <bobby@servmask.com>
|
47 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
48 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
49 |
-
* @version GIT: 1.
|
50 |
* @link https://github.com/yani-/mysqldump-factory/
|
51 |
*/
|
52 |
class MysqlDumpPDO implements MysqlDumpInterface
|
@@ -357,11 +357,11 @@ class MysqlDumpPDO implements MysqlDumpInterface
|
|
357 |
}
|
358 |
|
359 |
/**
|
360 |
-
*
|
361 |
*
|
362 |
* @return void
|
363 |
*/
|
364 |
-
public function
|
365 |
{
|
366 |
$query = $this->queryAdapter->show_tables($this->database);
|
367 |
$result = $this->getConnection()->query($query);
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
32 |
+
* @version GIT: 1.2.0
|
33 |
* @link https://github.com/yani-/mysqldump-factory/
|
34 |
*/
|
35 |
|
46 |
* @author Bobby Angelov <bobby@servmask.com>
|
47 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
48 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
49 |
+
* @version GIT: 1.2.0
|
50 |
* @link https://github.com/yani-/mysqldump-factory/
|
51 |
*/
|
52 |
class MysqlDumpPDO implements MysqlDumpInterface
|
357 |
}
|
358 |
|
359 |
/**
|
360 |
+
* Flush database
|
361 |
*
|
362 |
* @return void
|
363 |
*/
|
364 |
+
public function flush()
|
365 |
{
|
366 |
$query = $this->queryAdapter->show_tables($this->database);
|
367 |
$result = $this->getConnection()->query($query);
|
lib/vendor/mysqldump-factory/mysqldump-factory/lib/MysqlDumpSQL.php
CHANGED
@@ -29,7 +29,7 @@
|
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
32 |
-
* @version GIT: 1.
|
33 |
* @link https://github.com/yani-/mysqldump-factory/
|
34 |
*/
|
35 |
|
@@ -46,7 +46,7 @@ require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'MysqlFileAdapter.php';
|
|
46 |
* @author Bobby Angelov <bobby@servmask.com>
|
47 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
48 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
49 |
-
* @version GIT: 1.
|
50 |
* @link https://github.com/yani-/mysqldump-factory/
|
51 |
*/
|
52 |
class MysqlDumpSQL implements MysqlDumpInterface
|
@@ -349,11 +349,11 @@ class MysqlDumpSQL implements MysqlDumpInterface
|
|
349 |
}
|
350 |
|
351 |
/**
|
352 |
-
*
|
353 |
*
|
354 |
* @return void
|
355 |
*/
|
356 |
-
public function
|
357 |
{
|
358 |
$query = $this->queryAdapter->show_tables($this->database);
|
359 |
$result = mysql_unbuffered_query($query, $this->getConnection());
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
32 |
+
* @version GIT: 1.2.0
|
33 |
* @link https://github.com/yani-/mysqldump-factory/
|
34 |
*/
|
35 |
|
46 |
* @author Bobby Angelov <bobby@servmask.com>
|
47 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
48 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
49 |
+
* @version GIT: 1.2.0
|
50 |
* @link https://github.com/yani-/mysqldump-factory/
|
51 |
*/
|
52 |
class MysqlDumpSQL implements MysqlDumpInterface
|
349 |
}
|
350 |
|
351 |
/**
|
352 |
+
* Flush database
|
353 |
*
|
354 |
* @return void
|
355 |
*/
|
356 |
+
public function flush()
|
357 |
{
|
358 |
$query = $this->queryAdapter->show_tables($this->database);
|
359 |
$result = mysql_unbuffered_query($query, $this->getConnection());
|
lib/vendor/mysqldump-factory/mysqldump-factory/lib/MysqlFileAdapter.php
CHANGED
@@ -29,7 +29,7 @@
|
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
32 |
-
* @version GIT: 1.
|
33 |
* @link https://github.com/yani-/mysqldump-factory/
|
34 |
*/
|
35 |
|
@@ -42,7 +42,7 @@
|
|
42 |
* @author Bobby Angelov <bobby@servmask.com>
|
43 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
44 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
45 |
-
* @version GIT: 1.
|
46 |
* @link https://github.com/yani-/mysqldump-factory/
|
47 |
*/
|
48 |
class MysqlFileAdapter
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
32 |
+
* @version GIT: 1.2.0
|
33 |
* @link https://github.com/yani-/mysqldump-factory/
|
34 |
*/
|
35 |
|
42 |
* @author Bobby Angelov <bobby@servmask.com>
|
43 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
44 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
45 |
+
* @version GIT: 1.2.0
|
46 |
* @link https://github.com/yani-/mysqldump-factory/
|
47 |
*/
|
48 |
class MysqlFileAdapter
|
lib/vendor/mysqldump-factory/mysqldump-factory/lib/MysqlQueryAdapter.php
CHANGED
@@ -29,7 +29,7 @@
|
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
32 |
-
* @version GIT: 1.
|
33 |
* @link https://github.com/yani-/mysqldump-factory/
|
34 |
*/
|
35 |
|
@@ -42,7 +42,7 @@
|
|
42 |
* @author Bobby Angelov <bobby@servmask.com>
|
43 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
44 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
45 |
-
* @version GIT: 1.
|
46 |
* @link https://github.com/yani-/mysqldump-factory/
|
47 |
*/
|
48 |
class MysqlQueryAdapter
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
32 |
+
* @version GIT: 1.2.0
|
33 |
* @link https://github.com/yani-/mysqldump-factory/
|
34 |
*/
|
35 |
|
42 |
* @author Bobby Angelov <bobby@servmask.com>
|
43 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
44 |
* @license https://raw.github.com/yani-/mysqldump-factory/master/LICENSE The MIT License (MIT)
|
45 |
+
* @version GIT: 1.2.0
|
46 |
* @link https://github.com/yani-/mysqldump-factory/
|
47 |
*/
|
48 |
class MysqlQueryAdapter
|
lib/vendor/storage-factory/storage-factory/lib/StorageAbstract.php
CHANGED
@@ -29,7 +29,7 @@
|
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/borislav-angelov/storage-factory/master/LICENSE The MIT License (MIT)
|
32 |
-
* @version GIT: 1.
|
33 |
* @link https://github.com/borislav-angelov/storage-factory/
|
34 |
*/
|
35 |
|
@@ -42,7 +42,7 @@
|
|
42 |
* @author Bobby Angelov <bobby@servmask.com>
|
43 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
44 |
* @license https://raw.github.com/borislav-angelov/storage-factory/master/LICENSE The MIT License (MIT)
|
45 |
-
* @version GIT: 1.
|
46 |
* @link https://github.com/borislav-angelov/storage-factory/
|
47 |
*/
|
48 |
abstract class StorageAbstract
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/borislav-angelov/storage-factory/master/LICENSE The MIT License (MIT)
|
32 |
+
* @version GIT: 2.1.0
|
33 |
* @link https://github.com/borislav-angelov/storage-factory/
|
34 |
*/
|
35 |
|
42 |
* @author Bobby Angelov <bobby@servmask.com>
|
43 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
44 |
* @license https://raw.github.com/borislav-angelov/storage-factory/master/LICENSE The MIT License (MIT)
|
45 |
+
* @version GIT: 2.1.0
|
46 |
* @link https://github.com/borislav-angelov/storage-factory/
|
47 |
*/
|
48 |
abstract class StorageAbstract
|
lib/vendor/storage-factory/storage-factory/lib/StorageArea.php
CHANGED
@@ -29,7 +29,7 @@
|
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/borislav-angelov/storage-factory/master/LICENSE The MIT License (MIT)
|
32 |
-
* @version GIT: 1.
|
33 |
* @link https://github.com/borislav-angelov/storage-factory/
|
34 |
*/
|
35 |
|
@@ -45,7 +45,7 @@ require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'StorageDirectory.php';
|
|
45 |
* @author Bobby Angelov <bobby@servmask.com>
|
46 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
47 |
* @license https://raw.github.com/borislav-angelov/storage-factory/master/LICENSE The MIT License (MIT)
|
48 |
-
* @version GIT: 1.
|
49 |
* @link https://github.com/borislav-angelov/storage-factory/
|
50 |
*/
|
51 |
class StorageArea
|
@@ -56,10 +56,11 @@ class StorageArea
|
|
56 |
* Create a file with unique name
|
57 |
*
|
58 |
* @param string $name Custom file name
|
|
|
59 |
* @return StorageFile StorageFile instance
|
60 |
*/
|
61 |
-
public function makeFile($name = null) {
|
62 |
-
$this->nodes[] = $node = new StorageFile($name);
|
63 |
|
64 |
return $node;
|
65 |
}
|
@@ -68,10 +69,11 @@ class StorageArea
|
|
68 |
* Create a directory with unique name
|
69 |
*
|
70 |
* @param string $name Custom directory name
|
|
|
71 |
* @return StorageDirectory StorageDirectory instance
|
72 |
*/
|
73 |
-
public function makeDirectory($name = null) {
|
74 |
-
$this->nodes[] = $node = new StorageDirectory($name);
|
75 |
|
76 |
return $node;
|
77 |
}
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/borislav-angelov/storage-factory/master/LICENSE The MIT License (MIT)
|
32 |
+
* @version GIT: 2.1.0
|
33 |
* @link https://github.com/borislav-angelov/storage-factory/
|
34 |
*/
|
35 |
|
45 |
* @author Bobby Angelov <bobby@servmask.com>
|
46 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
47 |
* @license https://raw.github.com/borislav-angelov/storage-factory/master/LICENSE The MIT License (MIT)
|
48 |
+
* @version GIT: 2.1.0
|
49 |
* @link https://github.com/borislav-angelov/storage-factory/
|
50 |
*/
|
51 |
class StorageArea
|
56 |
* Create a file with unique name
|
57 |
*
|
58 |
* @param string $name Custom file name
|
59 |
+
* @param string $path Custom root path
|
60 |
* @return StorageFile StorageFile instance
|
61 |
*/
|
62 |
+
public function makeFile($name = null, $path = null) {
|
63 |
+
$this->nodes[] = $node = new StorageFile($name, $path);
|
64 |
|
65 |
return $node;
|
66 |
}
|
69 |
* Create a directory with unique name
|
70 |
*
|
71 |
* @param string $name Custom directory name
|
72 |
+
* @param string $path Custom root path
|
73 |
* @return StorageDirectory StorageDirectory instance
|
74 |
*/
|
75 |
+
public function makeDirectory($name = null, $path = null) {
|
76 |
+
$this->nodes[] = $node = new StorageDirectory($name, $path);
|
77 |
|
78 |
return $node;
|
79 |
}
|
lib/vendor/storage-factory/storage-factory/lib/StorageDirectory.php
CHANGED
@@ -29,7 +29,7 @@
|
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/borislav-angelov/storage-factory/master/LICENSE The MIT License (MIT)
|
32 |
-
* @version GIT: 1.
|
33 |
* @link https://github.com/borislav-angelov/storage-factory/
|
34 |
*/
|
35 |
|
@@ -44,7 +44,7 @@ require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'StorageAbstract.php';
|
|
44 |
* @author Bobby Angelov <bobby@servmask.com>
|
45 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
46 |
* @license https://raw.github.com/borislav-angelov/storage-factory/master/LICENSE The MIT License (MIT)
|
47 |
-
* @version GIT: 1.
|
48 |
* @link https://github.com/borislav-angelov/storage-factory/
|
49 |
*/
|
50 |
class StorageDirectory extends StorageAbstract
|
@@ -54,11 +54,19 @@ class StorageDirectory extends StorageAbstract
|
|
54 |
/**
|
55 |
* CTOR
|
56 |
*/
|
57 |
-
public function __construct($name = null) {
|
58 |
if (empty($name)) {
|
59 |
-
|
|
|
|
|
|
|
|
|
60 |
} else {
|
61 |
-
|
|
|
|
|
|
|
|
|
62 |
}
|
63 |
|
64 |
// Create directory
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/borislav-angelov/storage-factory/master/LICENSE The MIT License (MIT)
|
32 |
+
* @version GIT: 2.1.0
|
33 |
* @link https://github.com/borislav-angelov/storage-factory/
|
34 |
*/
|
35 |
|
44 |
* @author Bobby Angelov <bobby@servmask.com>
|
45 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
46 |
* @license https://raw.github.com/borislav-angelov/storage-factory/master/LICENSE The MIT License (MIT)
|
47 |
+
* @version GIT: 2.1.0
|
48 |
* @link https://github.com/borislav-angelov/storage-factory/
|
49 |
*/
|
50 |
class StorageDirectory extends StorageAbstract
|
54 |
/**
|
55 |
* CTOR
|
56 |
*/
|
57 |
+
public function __construct($name = null, $path = null) {
|
58 |
if (empty($name)) {
|
59 |
+
if (empty($path)) {
|
60 |
+
$this->directory = $this->getRootPath() . DIRECTORY_SEPARATOR . uniqid() . DIRECTORY_SEPARATOR;
|
61 |
+
} else {
|
62 |
+
$this->directory = $path . DIRECTORY_SEPARATOR . uniqid() . DIRECTORY_SEPARATOR;
|
63 |
+
}
|
64 |
} else {
|
65 |
+
if (empty($path)) {
|
66 |
+
$this->directory = $this->getRootPath() . DIRECTORY_SEPARATOR . $name . DIRECTORY_SEPARATOR;
|
67 |
+
} else {
|
68 |
+
$this->directory = $path . DIRECTORY_SEPARATOR . $name . DIRECTORY_SEPARATOR;
|
69 |
+
}
|
70 |
}
|
71 |
|
72 |
// Create directory
|
lib/vendor/storage-factory/storage-factory/lib/StorageFile.php
CHANGED
@@ -29,7 +29,7 @@
|
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/borislav-angelov/storage-factory/master/LICENSE The MIT License (MIT)
|
32 |
-
* @version GIT: 1.
|
33 |
* @link https://github.com/borislav-angelov/storage-factory/
|
34 |
*/
|
35 |
|
@@ -44,7 +44,7 @@ require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'StorageAbstract.php';
|
|
44 |
* @author Bobby Angelov <bobby@servmask.com>
|
45 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
46 |
* @license https://raw.github.com/borislav-angelov/storage-factory/master/LICENSE The MIT License (MIT)
|
47 |
-
* @version GIT: 1.
|
48 |
* @link https://github.com/borislav-angelov/storage-factory/
|
49 |
*/
|
50 |
class StorageFile extends StorageAbstract
|
@@ -54,14 +54,25 @@ class StorageFile extends StorageAbstract
|
|
54 |
/**
|
55 |
* CTOR
|
56 |
*/
|
57 |
-
public function __construct($name = null) {
|
58 |
if (empty($name)) {
|
59 |
-
$
|
60 |
-
$this->
|
61 |
-
|
62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
} else {
|
64 |
-
|
|
|
|
|
|
|
|
|
65 |
}
|
66 |
}
|
67 |
|
29 |
* @author Bobby Angelov <bobby@servmask.com>
|
30 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
31 |
* @license https://raw.github.com/borislav-angelov/storage-factory/master/LICENSE The MIT License (MIT)
|
32 |
+
* @version GIT: 2.1.0
|
33 |
* @link https://github.com/borislav-angelov/storage-factory/
|
34 |
*/
|
35 |
|
44 |
* @author Bobby Angelov <bobby@servmask.com>
|
45 |
* @copyright 2014 Yani Iliev, Bobby Angelov
|
46 |
* @license https://raw.github.com/borislav-angelov/storage-factory/master/LICENSE The MIT License (MIT)
|
47 |
+
* @version GIT: 2.1.0
|
48 |
* @link https://github.com/borislav-angelov/storage-factory/
|
49 |
*/
|
50 |
class StorageFile extends StorageAbstract
|
54 |
/**
|
55 |
* CTOR
|
56 |
*/
|
57 |
+
public function __construct($name = null, $path = null) {
|
58 |
if (empty($name)) {
|
59 |
+
if (empty($path)) {
|
60 |
+
$this->file = tempnam(
|
61 |
+
$this->getRootPath(),
|
62 |
+
(defined('AI1WM_STORAGE_PREFIX') ? AI1WM_STORAGE_PREFIX : 'sm_')
|
63 |
+
);
|
64 |
+
} else {
|
65 |
+
$this->file = tempnam(
|
66 |
+
$path,
|
67 |
+
(defined('AI1WM_STORAGE_PREFIX') ? AI1WM_STORAGE_PREFIX : 'sm_')
|
68 |
+
);
|
69 |
+
}
|
70 |
} else {
|
71 |
+
if (empty($path)) {
|
72 |
+
$this->file = $this->getRootPath() . DIRECTORY_SEPARATOR . $name;
|
73 |
+
} else {
|
74 |
+
$this->file = $path . DIRECTORY_SEPARATOR . $name;
|
75 |
+
}
|
76 |
}
|
77 |
}
|
78 |
|
lib/view/export/index.php
CHANGED
@@ -61,17 +61,6 @@
|
|
61 |
|
62 |
<form action="" method="post" id="ai1wm-export-form">
|
63 |
|
64 |
-
<div class="ai1wm-replace-row">
|
65 |
-
<div class="ai1wm-field-inline">
|
66 |
-
<input type="text" value="<?php echo get_bloginfo( 'url' ); ?>" placeholder="<?php _e( 'Current Site URL' ); ?>" name="options[replace][old-value][]" id="old-value-1" />
|
67 |
-
</div>
|
68 |
-
|
69 |
-
<div class="ai1wm-field-inline">
|
70 |
-
<input type="text" value="" placeholder="<?php _e( 'New Website URL (ex. https://servmask.com)' ); ?>" name="options[replace][new-value][]" id="new-value-1" />
|
71 |
-
</div>
|
72 |
-
<div class="ai1wm-clear"></div>
|
73 |
-
</div>
|
74 |
-
|
75 |
<div class="ai1wm-replace-row">
|
76 |
<div class="ai1wm-field-inline">
|
77 |
<input type="text" value="" placeholder="<?php _e( 'Find' ); ?>" name="options[replace][old-value][]" id="old-value-1" />
|
61 |
|
62 |
<form action="" method="post" id="ai1wm-export-form">
|
63 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
<div class="ai1wm-replace-row">
|
65 |
<div class="ai1wm-field-inline">
|
66 |
<input type="text" value="" placeholder="<?php _e( 'Find' ); ?>" name="options[replace][old-value][]" id="old-value-1" />
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: yani.iliev, bangelov, mirkov
|
|
3 |
Tags: db migration, migration, wordpress migration, db backup, db restore, website backup, website restore, website migration, website deploy, wordpress deploy, db backup, database export, database serialization, database find replace
|
4 |
Requires at least: 3.3
|
5 |
Tested up to: 3.9
|
6 |
-
Stable tag: 1.
|
7 |
License: GPLv2 or later
|
8 |
|
9 |
All-in-One WP Migration is the only tools that you will ever needs when you need to perform site migration of your WordPress blog.
|
@@ -70,6 +70,11 @@ All in One WP Plugin is the first plugin to offer true mobile experience on Word
|
|
70 |
3. Plugin Menu
|
71 |
|
72 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
73 |
= 1.7.2 =
|
74 |
* Added support for automatically switching database adapters for better performance and optimization
|
75 |
* Fixed a bug when using host:port syntax with MySQL PDO
|
3 |
Tags: db migration, migration, wordpress migration, db backup, db restore, website backup, website restore, website migration, website deploy, wordpress deploy, db backup, database export, database serialization, database find replace
|
4 |
Requires at least: 3.3
|
5 |
Tested up to: 3.9
|
6 |
+
Stable tag: 1.8.0
|
7 |
License: GPLv2 or later
|
8 |
|
9 |
All-in-One WP Migration is the only tools that you will ever needs when you need to perform site migration of your WordPress blog.
|
70 |
3. Plugin Menu
|
71 |
|
72 |
== Changelog ==
|
73 |
+
= 1.8.0 =
|
74 |
+
* Added support for dynamically recognizing Site URL and Home URL on the import page
|
75 |
+
* Fixed a bug when maximum uploaded size is exceeded
|
76 |
+
* Fixed a bug when exporting big database tables
|
77 |
+
|
78 |
= 1.7.2 =
|
79 |
* Added support for automatically switching database adapters for better performance and optimization
|
80 |
* Fixed a bug when using host:port syntax with MySQL PDO
|