From 215b8fa174d1dcf1b1e5410e7d50f7951c61cafe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C4=8Ciha=C5=99?= Date: Mon, 24 Aug 2009 14:39:38 +0000 Subject: [PATCH] Added ability for synchronizing databases among servers. Manual merge from branches/gsoc/zahra. --- ChangeLog | 1 + js/functions.js | 302 ++++ lang/afrikaans-utf-8.inc.php | 18 + lang/albanian-utf-8.inc.php | 18 + lang/arabic-utf-8.inc.php | 18 + lang/azerbaijani-utf-8.inc.php | 18 + lang/bangla-utf-8.inc.php | 18 + lang/basque-utf-8.inc.php | 18 + lang/belarusian_cyrillic-utf-8.inc.php | 18 + lang/belarusian_latin-utf-8.inc.php | 18 + lang/bosnian-utf-8.inc.php | 18 + lang/brazilian_portuguese-utf-8.inc.php | 18 + lang/bulgarian-utf-8.inc.php | 18 + lang/catalan-utf-8.inc.php | 18 + lang/chinese_simplified-utf-8.inc.php | 18 + lang/chinese_traditional-utf-8.inc.php | 18 + lang/croatian-utf-8.inc.php | 18 + lang/czech-utf-8.inc.php | 18 + lang/danish-utf-8.inc.php | 18 + lang/dutch-utf-8.inc.php | 18 + lang/english-utf-8.inc.php | 102 +- lang/estonian-utf-8.inc.php | 18 + lang/finnish-utf-8.inc.php | 18 + lang/french-utf-8.inc.php | 18 + lang/galician-utf-8.inc.php | 18 + lang/georgian-utf-8.inc.php | 18 + lang/german-utf-8.inc.php | 18 + lang/greek-utf-8.inc.php | 18 + lang/hebrew-utf-8.inc.php | 18 + lang/hindi-utf-8.inc.php | 18 + lang/hungarian-utf-8.inc.php | 18 + lang/indonesian-utf-8.inc.php | 18 + lang/italian-utf-8.inc.php | 18 + lang/japanese-utf-8.inc.php | 18 + lang/korean-utf-8.inc.php | 18 + lang/latvian-utf-8.inc.php | 18 + lang/lithuanian-utf-8.inc.php | 18 + lang/macedonian_cyrillic-utf-8.inc.php | 18 + lang/malay-utf-8.inc.php | 18 + lang/mongolian-utf-8.inc.php | 18 + lang/norwegian-utf-8.inc.php | 18 + lang/persian-utf-8.inc.php | 18 + lang/polish-utf-8.inc.php | 18 + lang/portuguese-utf-8.inc.php | 18 + lang/romanian-utf-8.inc.php | 18 + lang/russian-utf-8.inc.php | 18 + lang/serbian_cyrillic-utf-8.inc.php | 18 + lang/serbian_latin-utf-8.inc.php | 18 + lang/sinhala-utf-8.inc.php | 18 + lang/slovak-utf-8.inc.php | 18 + lang/slovenian-utf-8.inc.php | 18 + lang/spanish-utf-8.inc.php | 18 + lang/swedish-utf-8.inc.php | 18 + lang/tatarish-utf-8.inc.php | 18 + lang/thai-utf-8.inc.php | 18 + lang/turkish-utf-8.inc.php | 18 + lang/ukrainian-utf-8.inc.php | 18 + lang/uzbek_cyrillic-utf-8.inc.php | 18 + lang/uzbek_latin-utf-8.inc.php | 18 + libraries/database_interface.lib.php | 75 + libraries/server_links.inc.php | 4 + libraries/server_synchronize.lib.php | 1332 +++++++++++++++++ server_synchronize.php | 1242 +++++++++++++++ themes/original/img/new_data.jpg | Bin 0 -> 1925 bytes themes/original/img/new_data_hovered.jpg | Bin 0 -> 1558 bytes themes/original/img/new_data_selected.jpg | Bin 0 -> 1450 bytes .../img/new_data_selected_hovered.jpg | Bin 0 -> 1456 bytes themes/original/img/new_struct.jpg | Bin 0 -> 1118 bytes themes/original/img/new_struct_hovered.jpg | Bin 0 -> 1643 bytes themes/original/img/new_struct_selected.jpg | Bin 0 -> 1431 bytes .../img/new_struct_selected_hovered.jpg | Bin 0 -> 1463 bytes themes/original/img/s_sync.png | Bin 0 -> 1420 bytes 72 files changed, 4024 insertions(+), 42 deletions(-) create mode 100644 libraries/server_synchronize.lib.php create mode 100644 server_synchronize.php create mode 100644 themes/original/img/new_data.jpg create mode 100644 themes/original/img/new_data_hovered.jpg create mode 100644 themes/original/img/new_data_selected.jpg create mode 100644 themes/original/img/new_data_selected_hovered.jpg create mode 100644 themes/original/img/new_struct.jpg create mode 100644 themes/original/img/new_struct_hovered.jpg create mode 100644 themes/original/img/new_struct_selected.jpg create mode 100644 themes/original/img/new_struct_selected_hovered.jpg create mode 100644 themes/original/img/s_sync.png diff --git a/ChangeLog b/ChangeLog index 38c96f3e7..00337925f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -33,6 +33,7 @@ $HeadURL: https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyA thanks to Derek Schaefer + [core] Addded ability for tracking changes made through phpMyAdmin + rfe #2839504 [engines] Support InnoDB plugin's new row formats ++ [core] Added ability for synchronizing databases among servers. 3.2.2.0 (not yet released) - bug #2825293 [structure] Default value for a BIT column diff --git a/js/functions.js b/js/functions.js index bf1b5913c..52547421d 100644 --- a/js/functions.js +++ b/js/functions.js @@ -279,7 +279,309 @@ function checkSqlQuery(theForm) return true; } // end of the 'checkSqlQuery()' function +// Global variable row_class is set to even +var row_class = 'even'; +/** +* Generates a row dynamically in the differences table displaying +* the complete statistics of difference in table like number of +* rows to be updated, number of rows to be inserted, number of +* columns to be added, number of columns to be removed, etc. +* +* @param index index of matching table +* @param update_size number of rows/column to be updated +* @param insert_size number of rows/coulmns to be inserted +* @param remove_size number of columns to be removed +* @param insert_index number of indexes to be inserted +* @param remove_index number of indexes to be removed +* @param img_obj image object +* @param table_name name of the table +*/ + +function showDetails(i, update_size, insert_size, remove_size, insert_index, remove_index, img_obj, table_name) +{ + // The path of the image is split to facilitate comparison + var relative_path = (img_obj.src).split("themes/"); + + // The image source is changed when the showDetails function is called. + if (relative_path[1] == 'original/img/new_data_hovered.jpg') { + img_obj.src = "./themes/original/img/new_data_selected_hovered.jpg"; + img_obj.alt = "Click to Unselect"; //only for IE browser + } else if (relative_path[1] == 'original/img/new_struct_hovered.jpg') { + img_obj.src = "./themes/original/img/new_struct_selected_hovered.jpg"; + img_obj.alt = "Click to Unselect"; + } else if (relative_path[1] == 'original/img/new_struct_selected_hovered.jpg') { + img_obj.src = "./themes/original/img/new_struct_hovered.jpg"; + img_obj.alt = "Click to Select"; + } else if (relative_path[1] == 'original/img/new_data_selected_hovered.jpg') { + img_obj.src = "./themes/original/img/new_data_hovered.jpg"; + img_obj.alt = "Click to Select"; + } + + var div = document.getElementById("list"); + var table = div.getElementsByTagName("table")[0]; + var table_body = table.getElementsByTagName("tbody")[0]; + + //Global variable row_class is being used + if (row_class == 'even') { + row_class = 'odd'; + } else { + row_class = 'even'; + } + // If the red or green button against a table name is pressed then append a new row to show the details of differences of this table. + if ((relative_path[1] != 'original/img/new_struct_selected_hovered.jpg') && (relative_path[1] != 'original/img/new_data_selected_hovered.jpg')) { + + var newRow = document.createElement("tr"); + newRow.setAttribute("class", row_class); + newRow.className = row_class; + // Id assigned to this row element is same as the index of this table name in the matching_tables/source_tables_uncommon array + newRow.setAttribute("id" , i); + + var table_name_cell = document.createElement("td"); + table_name_cell.align = "center"; + table_name_cell.innerHTML = table_name ; + + newRow.appendChild(table_name_cell); + + var create_table = document.createElement("td"); + create_table.align = "center"; + + var add_cols = document.createElement("td"); + add_cols.align = "center"; + + var remove_cols = document.createElement("td"); + remove_cols.align = "center"; + + var alter_cols = document.createElement("td"); + alter_cols.align = "center"; + + var add_index = document.createElement("td"); + add_index.align = "center"; + + var delete_index = document.createElement("td"); + delete_index.align = "center"; + + var update_rows = document.createElement("td"); + update_rows.align = "center"; + + var insert_rows = document.createElement("td"); + insert_rows.align = "center"; + + var tick_image = document.createElement("img"); + tick_image.src = "./themes/original/img/s_success.png"; + + if (update_size == '' && insert_size == '' && remove_size == '') { + /** + This is the case when the table needs to be created in target database. + */ + create_table.appendChild(tick_image); + add_cols.innerHTML = "--"; + remove_cols.innerHTML = "--"; + alter_cols.innerHTML = "--"; + delete_index.innerHTML = "--"; + add_index.innerHTML = "--"; + update_rows.innerHTML = "--"; + insert_rows.innerHTML = "--"; + + newRow.appendChild(create_table); + newRow.appendChild(add_cols); + newRow.appendChild(remove_cols); + newRow.appendChild(alter_cols); + newRow.appendChild(delete_index); + newRow.appendChild(add_index); + newRow.appendChild(update_rows); + newRow.appendChild(insert_rows); + + } else if (update_size == '' && remove_size == '') { + /** + This is the case when data difference is displayed in the + table which is present in source but absent from target database + */ + create_table.innerHTML = "--"; + add_cols.innerHTML = "--"; + remove_cols.innerHTML = "--"; + alter_cols.innerHTML = "--"; + add_index.innerHTML = "--"; + delete_index.innerHTML = "--"; + update_rows.innerHTML = "--"; + insert_rows.innerHTML = insert_size; + + newRow.appendChild(create_table); + newRow.appendChild(add_cols); + newRow.appendChild(remove_cols); + newRow.appendChild(alter_cols); + newRow.appendChild(delete_index); + newRow.appendChild(add_index); + newRow.appendChild(update_rows); + newRow.appendChild(insert_rows); + + } else if (remove_size == '') { + /** + This is the case when data difference between matching_tables is displayed. + */ + create_table.innerHTML = "--"; + add_cols.innerHTML = "--"; + remove_cols.innerHTML = "--"; + alter_cols.innerHTML = "--"; + add_index.innerHTML = "--"; + delete_index.innerHTML = "--"; + update_rows.innerHTML = update_size; + insert_rows.innerHTML = insert_size; + + newRow.appendChild(create_table); + newRow.appendChild(add_cols); + newRow.appendChild(remove_cols); + newRow.appendChild(alter_cols); + newRow.appendChild(delete_index); + newRow.appendChild(add_index); + newRow.appendChild(update_rows); + newRow.appendChild(insert_rows); + + } else { + /** + This is the case when structure difference between matching_tables id displayed + */ + create_table.innerHTML = "--"; + add_cols.innerHTML = insert_size; + remove_cols.innerHTML = remove_size; + alter_cols.innerHTML = update_size; + delete_index.innerHTML = remove_index; + add_index.innerHTML = insert_index; + update_rows.innerHTML = "--"; + insert_rows.innerHTML = "--"; + + newRow.appendChild(create_table); + newRow.appendChild(add_cols); + newRow.appendChild(remove_cols); + newRow.appendChild(alter_cols); + newRow.appendChild(delete_index); + newRow.appendChild(add_index); + newRow.appendChild(update_rows); + newRow.appendChild(insert_rows); + } + table_body.appendChild(newRow); + + } else if ((relative_path[1] != 'original/img/new_struct_hovered.jpg') && (relative_path[1] != 'original/img/new_data_hovered.jpg')) { + //The case when the row showing the details need to be removed from the table i.e. the difference button is deselected now. + var table_rows = table_body.getElementsByTagName("tr"); + var j; + var index; + for (j=0; j < table_rows.length; j++) + { + if (table_rows[j].id == i) { + index = j; + table_rows[j].parentNode.removeChild(table_rows[j]); + } + } + //The table row css is being adjusted. Class "odd" for odd rows and "even" for even rows should be maintained. + for(index; index < table_rows.length; index++) + { + row_class_element = table_rows[index].getAttribute('class'); + if (row_class_element == "even") { + table_rows[index].setAttribute("class","odd"); // for Mozilla firefox + table_rows[index].className = "odd"; // for IE browser + } else { + table_rows[index].setAttribute("class","even"); // for Mozilla firefox + table_rows[index].className = "even"; // for IE browser + } + } + } +} + +/** + * Changes the image on hover effects + * + * @param img_obj the image object whose source needs to be changed + * + */ + +function change_Image(img_obj) +{ + var relative_path = (img_obj.src).split("themes/"); + + if (relative_path[1] == 'original/img/new_data.jpg') { + img_obj.src = "./themes/original/img/new_data_hovered.jpg"; + } else if (relative_path[1] == 'original/img/new_struct.jpg') { + img_obj.src = "./themes/original/img/new_struct_hovered.jpg"; + } else if (relative_path[1] == 'original/img/new_struct_hovered.jpg') { + img_obj.src = "./themes/original/img/new_struct.jpg"; + } else if (relative_path[1] == 'original/img/new_data_hovered.jpg') { + img_obj.src = "./themes/original/img/new_data.jpg"; + } else if (relative_path[1] == 'original/img/new_data_selected.jpg') { + img_obj.src = "./themes/original/img/new_data_selected_hovered.jpg"; + } else if(relative_path[1] == 'original/img/new_struct_selected.jpg') { + img_obj.src = "./themes/original/img/new_struct_selected_hovered.jpg"; + } else if (relative_path[1] == 'original/img/new_struct_selected_hovered.jpg') { + img_obj.src = "./themes/original/img/new_struct_selected.jpg"; + } else if (relative_path[1] == 'original/img/new_data_selected_hovered.jpg') { + img_obj.src = "./themes/original/img/new_data_selected.jpg"; + } +} + +/** + * Generates the URL containing the list of selected table ids for synchronization and + * a variable checked for confirmation of deleting previous rows from target tables + * + * @param token the token generated for each PMA form + * + */ + +function ApplySelectedChanges(token) +{ + var div = document.getElementById("list"); + var table = div.getElementsByTagName('table')[0]; + var table_body = table.getElementsByTagName('tbody')[0]; + // Get all the rows from the details table + var table_rows = table_body.getElementsByTagName('tr'); + var x = table_rows.length; + var i; + /** + Append the token at the beginning of the query string followed by + Table_ids that shows that "Apply Selected Changes" button is pressed + */ + var append_string = "?token="+token+"&Table_ids="+1; + for(i=0; i diff --git a/lang/albanian-utf-8.inc.php b/lang/albanian-utf-8.inc.php index 3cff3d318..e8374f861 100644 --- a/lang/albanian-utf-8.inc.php +++ b/lang/albanian-utf-8.inc.php @@ -1566,4 +1566,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/arabic-utf-8.inc.php b/lang/arabic-utf-8.inc.php index 22b0793e9..5e5ee00b8 100644 --- a/lang/arabic-utf-8.inc.php +++ b/lang/arabic-utf-8.inc.php @@ -1569,4 +1569,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/azerbaijani-utf-8.inc.php b/lang/azerbaijani-utf-8.inc.php index c8ec30de1..9939189a0 100644 --- a/lang/azerbaijani-utf-8.inc.php +++ b/lang/azerbaijani-utf-8.inc.php @@ -1563,4 +1563,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/bangla-utf-8.inc.php b/lang/bangla-utf-8.inc.php index 044fa55dd..932973a73 100644 --- a/lang/bangla-utf-8.inc.php +++ b/lang/bangla-utf-8.inc.php @@ -1542,4 +1542,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/basque-utf-8.inc.php b/lang/basque-utf-8.inc.php index 0e30c638f..1736781e5 100644 --- a/lang/basque-utf-8.inc.php +++ b/lang/basque-utf-8.inc.php @@ -1560,4 +1560,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/belarusian_cyrillic-utf-8.inc.php b/lang/belarusian_cyrillic-utf-8.inc.php index 18c6629b2..971dd201a 100644 --- a/lang/belarusian_cyrillic-utf-8.inc.php +++ b/lang/belarusian_cyrillic-utf-8.inc.php @@ -1542,4 +1542,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/belarusian_latin-utf-8.inc.php b/lang/belarusian_latin-utf-8.inc.php index 538592594..4390a5a28 100644 --- a/lang/belarusian_latin-utf-8.inc.php +++ b/lang/belarusian_latin-utf-8.inc.php @@ -1550,4 +1550,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/bosnian-utf-8.inc.php b/lang/bosnian-utf-8.inc.php index 62370069d..d038d3103 100644 --- a/lang/bosnian-utf-8.inc.php +++ b/lang/bosnian-utf-8.inc.php @@ -1566,4 +1566,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/brazilian_portuguese-utf-8.inc.php b/lang/brazilian_portuguese-utf-8.inc.php index 45a31bb21..8cf4e8eea 100644 --- a/lang/brazilian_portuguese-utf-8.inc.php +++ b/lang/brazilian_portuguese-utf-8.inc.php @@ -1557,4 +1557,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/bulgarian-utf-8.inc.php b/lang/bulgarian-utf-8.inc.php index 213a27971..beca329cb 100644 --- a/lang/bulgarian-utf-8.inc.php +++ b/lang/bulgarian-utf-8.inc.php @@ -1563,4 +1563,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/catalan-utf-8.inc.php b/lang/catalan-utf-8.inc.php index 8c2411f91..1d63ddadd 100644 --- a/lang/catalan-utf-8.inc.php +++ b/lang/catalan-utf-8.inc.php @@ -1537,4 +1537,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/chinese_simplified-utf-8.inc.php b/lang/chinese_simplified-utf-8.inc.php index 1eee245d2..de5c974ef 100644 --- a/lang/chinese_simplified-utf-8.inc.php +++ b/lang/chinese_simplified-utf-8.inc.php @@ -1550,4 +1550,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/chinese_traditional-utf-8.inc.php b/lang/chinese_traditional-utf-8.inc.php index 0e35c96e4..b6c288bdb 100644 --- a/lang/chinese_traditional-utf-8.inc.php +++ b/lang/chinese_traditional-utf-8.inc.php @@ -1547,4 +1547,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/croatian-utf-8.inc.php b/lang/croatian-utf-8.inc.php index dc76caf41..61c84603a 100644 --- a/lang/croatian-utf-8.inc.php +++ b/lang/croatian-utf-8.inc.php @@ -1544,4 +1544,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/czech-utf-8.inc.php b/lang/czech-utf-8.inc.php index 0ac10bb58..6ad9fcb24 100644 --- a/lang/czech-utf-8.inc.php +++ b/lang/czech-utf-8.inc.php @@ -1546,4 +1546,22 @@ $strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format $strSetupZipDumpExportWarning = '[a@?page=form&formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate $strSetupZipDumpImportWarning = '[a@?page=form&formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/danish-utf-8.inc.php b/lang/danish-utf-8.inc.php index b5d0925de..895f4e9b8 100644 --- a/lang/danish-utf-8.inc.php +++ b/lang/danish-utf-8.inc.php @@ -1542,4 +1542,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/dutch-utf-8.inc.php b/lang/dutch-utf-8.inc.php index 690d1741a..8bae6b838 100644 --- a/lang/dutch-utf-8.inc.php +++ b/lang/dutch-utf-8.inc.php @@ -1547,4 +1547,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/english-utf-8.inc.php b/lang/english-utf-8.inc.php index f4d5d3151..b2cb321c9 100644 --- a/lang/english-utf-8.inc.php +++ b/lang/english-utf-8.inc.php @@ -62,6 +62,7 @@ $strAnIndex = 'An index has been added on %s'; $strAny = 'Any'; $strAnyHost = 'Any host'; $strAnyUser = 'Any user'; +$strApplyChanges='Apply Selected Changes'; $strApproximateCount = 'May be approximate. See [a@./Documentation.html#faq3_11@Documentation]FAQ 3.11[/a]'; $strAPrimaryKey = 'A primary key has been added on %s'; $strArabic = 'Arabic'; @@ -133,26 +134,6 @@ $strCardinality = 'Cardinality'; $strCaseInsensitive = 'case-insensitive'; $strCaseSensitive = 'case-sensitive'; $strCentralEuropean = 'Central European'; -$strChange = 'Change'; -$strChangeCopyModeCopy = '... keep the old one.'; -$strChangeCopyMode = 'Create a new user with the same privileges and ...'; -$strChangeCopyModeDeleteAndReload = ' ... delete the old one from the user tables and reload the privileges afterwards.'; -$strChangeCopyModeJustDelete = ' ... delete the old one from the user tables.'; -$strChangeCopyModeRevoke = ' ... revoke all active privileges from the old one and delete it afterwards.'; -$strChangeCopyUser = 'Change Login Information / Copy User'; -$strChangeDisplay = 'Choose field to display'; -$strChangePassword = 'Change password'; -$strCharset = 'Charset'; -$strCharsetOfFile = 'Character set of the file:'; -$strCharsetsAndCollations = 'Character Sets and Collations'; -$strCharsets = 'Charsets'; -$strCheckAll = 'Check All'; -$strCheck = 'Check'; -$strCheckOverhead = 'Check tables having overhead'; -$strCheckPrivs = 'Check Privileges'; -$strCheckPrivsLong = 'Check privileges for database "%s".'; -$strCheckTable = 'Check table'; -$strChoosePage = 'Please choose a page to edit'; $strColComFeat = 'Displaying Column Comments'; $strCollation = 'Collation'; $strColumnNames = 'Column names'; @@ -203,6 +184,26 @@ $strCustomColor = 'Custom color'; $strCyrillic = 'Cyrillic'; $strCzech = 'Czech'; $strCzechSlovak = 'Czech-Slovak'; +$strChangeCopyModeCopy = '... keep the old one.'; +$strChangeCopyMode = 'Create a new user with the same privileges and ...'; +$strChangeCopyModeDeleteAndReload = ' ... delete the old one from the user tables and reload the privileges afterwards.'; +$strChangeCopyModeJustDelete = ' ... delete the old one from the user tables.'; +$strChangeCopyModeRevoke = ' ... revoke all active privileges from the old one and delete it afterwards.'; +$strChangeCopyUser = 'Change Login Information / Copy User'; +$strChangeDisplay = 'Choose field to display'; +$strChange = 'Change'; +$strChangePassword = 'Change password'; +$strCharset = 'Charset'; +$strCharsetOfFile = 'Character set of the file:'; +$strCharsetsAndCollations = 'Character Sets and Collations'; +$strCharsets = 'Charsets'; +$strCheckAll = 'Check All'; +$strCheck = 'Check'; +$strCheckOverhead = 'Check tables having overhead'; +$strCheckPrivs = 'Check Privileges'; +$strCheckPrivsLong = 'Check privileges for database "%s".'; +$strCheckTable = 'Check table'; +$strChoosePage = 'Please choose a page to edit'; $strDanish = 'Danish'; $strDatabase = 'Database'; @@ -218,8 +219,10 @@ $strDatabasesStatsEnable = 'Enable Statistics'; $strDatabasesStatsHeavyTraffic = 'Note: Enabling the database statistics here might cause heavy traffic between the web server and the MySQL server.'; $strData = 'Data'; $strDataDict = 'Data Dictionary'; +$strDataDiff = 'Data Difference'; $strDataOnly = 'Data only'; $strDataPages = 'Pages containing data'; +$strDataSyn = 'Data Synchronization'; $strDBComment = 'Database comment: '; $strDBCopy = 'Copy database to'; $strDbIsEmpty = 'Database seems to be empty!'; @@ -455,7 +458,6 @@ $strKorean = 'Korean'; $strLandscape = 'Landscape'; $strLanguage = 'Language'; $strLanguageUnknown = 'Unknown language: %1$s.'; -$strLatchedPages = 'Latched pages'; $strLatexCaption = 'Table caption'; $strLatexContent = 'Content of table __TABLE__'; $strLatexContinuedCaption = 'Continued table caption'; @@ -464,6 +466,7 @@ $strLatexIncludeCaption = 'Include table caption'; $strLatexLabel = 'Label key'; $strLaTeX = 'LaTeX'; $strLatexStructure = 'Structure of table __TABLE__'; +$strLatchedPages = 'Latched pages'; $strLatvian = 'Latvian'; $strLDI = 'CSV using LOAD DATA'; $strLDILocal = 'Use LOCAL keyword'; @@ -521,9 +524,9 @@ $strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table ind $strMyISAMRepairThreads = 'Repair threads'; $strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; $strMyISAMSortBufferSize = 'Sort buffer size'; -$strMySQLCharset = 'MySQL charset'; $strMysqlClientVersion = 'MySQL client version'; $strMySQLConnectionCollation = 'MySQL connection collation'; +$strMySQLCharset = 'MySQL charset'; $strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; $strMySQLSaid = 'MySQL said: '; $strMySQLShowProcess = 'Show processes'; @@ -592,19 +595,19 @@ $strPartitionDefinition = 'PARTITION definition'; $strPartitioned = 'partitioned'; $strPartitionMaintenance = 'Partition maintenance'; $strPartition = 'Partition %s'; -$strPasswordChanged = 'The password for %s was changed successfully.'; $strPasswordEmpty = 'The password is empty!'; $strPasswordHashing = 'Password Hashing'; +$strPasswordChanged = 'The password for %s was changed successfully.'; $strPasswordNotSame = 'The passwords aren\'t the same!'; $strPassword = 'Password'; -$strPBXTCheckpointFrequency = 'Checkpoint frequency'; -$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; $strPBXTDataFileGrowSize = 'Data file grow size'; $strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; $strPBXTDataLogThreshold = 'Data log threshold'; $strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; $strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; $strPBXTGarbageThreshold = 'Garbage threshold'; +$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; +$strPBXTCheckpointFrequency = 'Checkpoint frequency'; $strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; $strPBXTIndexCacheSize = 'Index cache size'; $strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; @@ -664,8 +667,8 @@ $strPrivDescDelete = 'Allows deleting data.'; $strPrivDescDropDb = 'Allows dropping databases and tables.'; $strPrivDescDropTbl = 'Allows dropping tables.'; $strPrivDescEvent = 'Allows to set up events for the event scheduler'; -$strPrivDescExecute5 = 'Allows executing stored routines.'; $strPrivDescExecute = 'Allows running stored procedures; has no effect in this MySQL version.'; +$strPrivDescExecute5 = 'Allows executing stored routines.'; $strPrivDescFile = 'Allows importing data from and exporting data into files.'; $strPrivDescGrant = 'Allows adding users and privileges without reloading the privilege tables.'; $strPrivDescIndex = 'Allows creating and dropping indexes.'; @@ -819,8 +822,8 @@ $strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server $strSetupAllowArbitraryServerMsg = 'This [a@?page=form&formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; $strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; $strSetupAllowUserDropDatabase_name = 'Show "Drop database" link to normal users'; -$strSetupBlowfishSecretCharsMsg = 'Key should contain letters, numbers [em]and[/em] special characters'; $strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; +$strSetupBlowfishSecretCharsMsg = 'Key should contain letters, numbers [em]and[/em] special characters'; $strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; $strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and have enabled cookie authentication, so a key was automatically generated for you. It is used to encrypt cookies; you don\'t need to remember it.'; $strSetupblowfish_secret_name = 'Blowfish secret'; @@ -833,13 +836,6 @@ $strSetupBZipDump_name = 'Bzip2'; $strSetupBZipDumpWarning = '[a@?page=form&formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; $strSetupCannotLoadConfig = 'Cannot load or save configuration'; $strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; -$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; -$strSetupCharEditing_name = 'CHAR fields editing'; -$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; -$strSetupCharTextareaCols_name = 'CHAR textarea columns'; -$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; -$strSetupCharTextareaRows_name = 'CHAR textarea rows'; -$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; $strSetupClear = 'Clear'; $strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; $strSetupCompressOnFly_name = 'Compress on the fly'; @@ -881,12 +877,12 @@ $strSetuperror_nan_p = 'Not a positive number'; $strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; $strSetupExecTimeLimit_name = 'Maximum execution time'; $strSetupExport_asfile_name = 'Save as file'; -$strSetupExport_charset_name = 'Character set of the file'; $strSetupExport_compression_name = 'Compression'; $strSetupExport_file_template_database_name = 'Database name template'; $strSetupExport_file_template_server_name = 'Server name template'; $strSetupExport_file_template_table_name = 'Table name template'; $strSetupExport_format_name = 'Format'; +$strSetupExport_charset_name = 'Character set of the file'; $strSetupExport_onserver_name = 'Save on server'; $strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; $strSetupExport_remember_file_template_name = 'Remember file name template'; @@ -949,6 +945,13 @@ $strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] c $strSetupGZipDump_name = 'GZip'; $strSetupGZipDumpWarning = '[a@?page=form&formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; $strSetupHomepageLink = 'phpMyAdmin homepage'; +$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; +$strSetupCharEditing_name = 'CHAR fields editing'; +$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; +$strSetupCharTextareaCols_name = 'CHAR textarea columns'; +$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; +$strSetupCharTextareaRows_name = 'CHAR textarea rows'; +$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; $strSetupIconvExtraParams_name = 'Extra parameters for iconv'; $strSetupIgnoreErrors = 'Ignore errors'; $strSetupIgnoreMultiSubmitErrors_desc = 'If enabled, phpMyAdmin continues computing multiple-statement queries even if one of the queries failed'; @@ -996,10 +999,10 @@ $strSetupLoginCookieStore_name = 'Login cookie store'; $strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; $strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; $strSetupLoginCookieValidity_name = 'Login cookie validity'; -$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; -$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; $strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; $strSetupMaxDbList_name = 'Maximum databases'; +$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; +$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; $strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, "Previous" and "Next" links will be shown.'; $strSetupMaxRows_name = 'Maximum number of rows to display'; $strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; @@ -1106,20 +1109,20 @@ $strSetupServers_table_info_desc = 'Table to describe the display fields, leave $strSetupServers_table_info_name = 'Display fields table'; $strSetupServers_user_desc = 'Leave empty if not using config auth'; $strSetupServers_user_name = 'User for config auth'; +$strSetupServers_verbose_desc = 'A user-friendly description of this server. Leave blank to display the hostname instead.'; $strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; $strSetupServers_verbose_check_name = 'Verbose check'; -$strSetupServers_verbose_desc = 'A user-friendly description of this server. Leave blank to display the hostname instead.'; $strSetupServers_verbose_name = 'Verbose name of this server'; $strSetupSetValue = 'Set value: %s'; $strSetupShowAll_desc = 'Whether a user should be displayed a "show all (records)" button'; $strSetupShowAll_name = 'Allow to display all the rows'; -$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; -$strSetupShowChgPassword_name = 'Show password change form'; $strSetupShowCreateDb_name = 'Show create database form'; $strSetupShowForm = 'Show form'; $strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; $strSetupShowFunctionFields_name = 'Show function fields'; $strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; +$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; +$strSetupShowChgPassword_name = 'Show password change form'; $strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; $strSetupShowPhpInfo_name = 'Show phpinfo() link'; $strSetupShowServerInfo_name = 'Show detailed MySQL server information'; @@ -1271,8 +1274,8 @@ $strShowStatusReset = 'Reset'; $strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; $strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; $strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; -$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; $strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; +$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; $strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; $strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; $strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; @@ -1318,9 +1321,9 @@ $strSQPBugInvalidIdentifer = 'Invalid Identifer'; $strSQPBugUnclosedQuote = 'Unclosed quote'; $strSQPBugUnknownPunctuation = 'Unknown Punctuation String'; $strStandInStructureForView = 'Stand-in structure for view'; -$strStatCheckTime = 'Last check'; $strStatCreateTime = 'Creation'; $strStatement = 'Statements'; +$strStatCheckTime = 'Last check'; $strStatic = 'static'; $strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; $strStatUpdateTime = 'Last update'; @@ -1333,9 +1336,11 @@ $strStrucExcelCSV = 'CSV for MS Excel'; $strStrucNativeExcel = 'Native MS Excel format'; $strStrucOnly = 'Structure only'; $strStructPropose = 'Propose table structure'; +$strStructureDiff = 'Structure Difference' ; $strStructureForView = 'Structure for view'; $strStructureLC = 'structure'; $strStructure = 'Structure'; +$strStructureSyn = 'Structure Synchronization'; $strSubmit = 'Submit'; $strSuccess = 'Your SQL query has been executed successfully'; $strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; @@ -1347,23 +1352,36 @@ $strSwekeyNoKeyId = 'File %s does not contain any key id'; $strSwekeyNoKey = 'No valid authentication key plugged'; $strSwitchToDatabase = 'Switch to copied database'; $strSwitchToTable = 'Switch to copied table'; +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; +$strSynchronizeDb= 'Synchronize Databases'; +$strSynchronize = 'Synchronize'; +$strTableAddColumn = 'Add Column(s)'; $strTableAlreadyExists = 'Table %s already exists!'; +$strTableAlterColumn = 'Alter Column(s)'; $strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; +$strTableAlterIndex = 'Alter Index(s)'; +$strTableApplyIndex = 'Apply Index(s)'; $strTableComments = 'Table comments'; +$strTableCreate = 'Create Table'; +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; $strTableEmpty = 'The table name is empty!'; $strTableHasBeenCreated = 'Table %1$s has been created.'; $strTableHasBeenDropped = 'Table %s has been dropped'; $strTableHasBeenEmptied = 'Table %s has been emptied'; $strTableHasBeenFlushed = 'Table %s has been flushed'; +$strTableInsertRow = 'Insert Row(s)'; $strTableIsEmpty = 'Table seems to be empty!'; $strTableMaintenance = 'Table maintenance'; $strTableName = 'Table name'; $strTableOfContents = 'Table of contents'; $strTableOptions = 'Table options'; +$strTableRemoveColumn = 'Remove Column(s)'; +$strTableRemoveIndex = 'Remove Index(s)'; $strTables = '%s table(s)'; $strTableStructure = 'Table structure for table'; $strTable = 'Table'; +$strTableUpdateRow = 'Update Row(s)'; $strTakeIt = 'take it'; $strTblPrivileges = 'Table-specific privileges'; $strTempData = 'Temporary data'; diff --git a/lang/estonian-utf-8.inc.php b/lang/estonian-utf-8.inc.php index 5a9917fc3..7a595d2a3 100644 --- a/lang/estonian-utf-8.inc.php +++ b/lang/estonian-utf-8.inc.php @@ -1548,4 +1548,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/finnish-utf-8.inc.php b/lang/finnish-utf-8.inc.php index 913dcdce7..24260123d 100644 --- a/lang/finnish-utf-8.inc.php +++ b/lang/finnish-utf-8.inc.php @@ -1543,4 +1543,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/french-utf-8.inc.php b/lang/french-utf-8.inc.php index 8c412fd62..632242233 100644 --- a/lang/french-utf-8.inc.php +++ b/lang/french-utf-8.inc.php @@ -1539,4 +1539,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/galician-utf-8.inc.php b/lang/galician-utf-8.inc.php index ec1e948a6..b1f1092f2 100644 --- a/lang/galician-utf-8.inc.php +++ b/lang/galician-utf-8.inc.php @@ -1541,4 +1541,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/georgian-utf-8.inc.php b/lang/georgian-utf-8.inc.php index 8e0eeb14c..d0d53bc02 100644 --- a/lang/georgian-utf-8.inc.php +++ b/lang/georgian-utf-8.inc.php @@ -1547,4 +1547,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/german-utf-8.inc.php b/lang/german-utf-8.inc.php index 8ba62d729..f0ce19b7e 100644 --- a/lang/german-utf-8.inc.php +++ b/lang/german-utf-8.inc.php @@ -1557,4 +1557,22 @@ $strXMLExportStructs = 'Export Structure Schemas (recommended)'; //to translate $strXMLExportTables = 'Export tables'; //to translate $strXMLExportTriggers = 'Export triggers'; //to translate $strXMLExportViews = 'Export views'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/greek-utf-8.inc.php b/lang/greek-utf-8.inc.php index 80785c519..2c71fa313 100644 --- a/lang/greek-utf-8.inc.php +++ b/lang/greek-utf-8.inc.php @@ -1565,4 +1565,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/hebrew-utf-8.inc.php b/lang/hebrew-utf-8.inc.php index 4676f82e8..c8c875ac3 100644 --- a/lang/hebrew-utf-8.inc.php +++ b/lang/hebrew-utf-8.inc.php @@ -1560,4 +1560,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/hindi-utf-8.inc.php b/lang/hindi-utf-8.inc.php index b9ca19539..c5ce71169 100644 --- a/lang/hindi-utf-8.inc.php +++ b/lang/hindi-utf-8.inc.php @@ -1568,4 +1568,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/hungarian-utf-8.inc.php b/lang/hungarian-utf-8.inc.php index 8dd09a14c..963bf2b6a 100644 --- a/lang/hungarian-utf-8.inc.php +++ b/lang/hungarian-utf-8.inc.php @@ -1544,4 +1544,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/indonesian-utf-8.inc.php b/lang/indonesian-utf-8.inc.php index d0b886625..88f023ce4 100644 --- a/lang/indonesian-utf-8.inc.php +++ b/lang/indonesian-utf-8.inc.php @@ -1558,4 +1558,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/italian-utf-8.inc.php b/lang/italian-utf-8.inc.php index b22d1ade0..88f997216 100644 --- a/lang/italian-utf-8.inc.php +++ b/lang/italian-utf-8.inc.php @@ -1547,4 +1547,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/japanese-utf-8.inc.php b/lang/japanese-utf-8.inc.php index 164c2b65f..7d4452b09 100644 --- a/lang/japanese-utf-8.inc.php +++ b/lang/japanese-utf-8.inc.php @@ -1548,4 +1548,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/korean-utf-8.inc.php b/lang/korean-utf-8.inc.php index 687757f29..12c1651ad 100644 --- a/lang/korean-utf-8.inc.php +++ b/lang/korean-utf-8.inc.php @@ -1563,4 +1563,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/latvian-utf-8.inc.php b/lang/latvian-utf-8.inc.php index 4aaa6f8c0..bf1f0605c 100644 --- a/lang/latvian-utf-8.inc.php +++ b/lang/latvian-utf-8.inc.php @@ -1565,4 +1565,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/lithuanian-utf-8.inc.php b/lang/lithuanian-utf-8.inc.php index 43a2b35f9..8245bc261 100644 --- a/lang/lithuanian-utf-8.inc.php +++ b/lang/lithuanian-utf-8.inc.php @@ -1557,4 +1557,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/macedonian_cyrillic-utf-8.inc.php b/lang/macedonian_cyrillic-utf-8.inc.php index 999a24231..736bf437d 100644 --- a/lang/macedonian_cyrillic-utf-8.inc.php +++ b/lang/macedonian_cyrillic-utf-8.inc.php @@ -1543,4 +1543,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/malay-utf-8.inc.php b/lang/malay-utf-8.inc.php index 68525e5c5..8aa05dd5e 100644 --- a/lang/malay-utf-8.inc.php +++ b/lang/malay-utf-8.inc.php @@ -1580,4 +1580,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/mongolian-utf-8.inc.php b/lang/mongolian-utf-8.inc.php index 1e07479a6..abae89a62 100644 --- a/lang/mongolian-utf-8.inc.php +++ b/lang/mongolian-utf-8.inc.php @@ -1563,4 +1563,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/norwegian-utf-8.inc.php b/lang/norwegian-utf-8.inc.php index 54cbc3a4c..aaba4727d 100644 --- a/lang/norwegian-utf-8.inc.php +++ b/lang/norwegian-utf-8.inc.php @@ -1540,4 +1540,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/persian-utf-8.inc.php b/lang/persian-utf-8.inc.php index 22e7c958e..c47a9be12 100644 --- a/lang/persian-utf-8.inc.php +++ b/lang/persian-utf-8.inc.php @@ -1594,4 +1594,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/polish-utf-8.inc.php b/lang/polish-utf-8.inc.php index 575775c9c..f90d729ff 100644 --- a/lang/polish-utf-8.inc.php +++ b/lang/polish-utf-8.inc.php @@ -1536,4 +1536,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/portuguese-utf-8.inc.php b/lang/portuguese-utf-8.inc.php index fc6d4535f..5107f09e6 100644 --- a/lang/portuguese-utf-8.inc.php +++ b/lang/portuguese-utf-8.inc.php @@ -1569,4 +1569,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/romanian-utf-8.inc.php b/lang/romanian-utf-8.inc.php index eee388bf7..ed4c5b5d9 100644 --- a/lang/romanian-utf-8.inc.php +++ b/lang/romanian-utf-8.inc.php @@ -1549,4 +1549,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/russian-utf-8.inc.php b/lang/russian-utf-8.inc.php index 4b6c6380e..971f0c773 100644 --- a/lang/russian-utf-8.inc.php +++ b/lang/russian-utf-8.inc.php @@ -1553,4 +1553,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/serbian_cyrillic-utf-8.inc.php b/lang/serbian_cyrillic-utf-8.inc.php index 6c358f877..4269ab242 100644 --- a/lang/serbian_cyrillic-utf-8.inc.php +++ b/lang/serbian_cyrillic-utf-8.inc.php @@ -1542,4 +1542,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/serbian_latin-utf-8.inc.php b/lang/serbian_latin-utf-8.inc.php index 92c90376b..a26a0cb56 100644 --- a/lang/serbian_latin-utf-8.inc.php +++ b/lang/serbian_latin-utf-8.inc.php @@ -1542,4 +1542,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/sinhala-utf-8.inc.php b/lang/sinhala-utf-8.inc.php index f0a1d5d7d..0d41f9b48 100644 --- a/lang/sinhala-utf-8.inc.php +++ b/lang/sinhala-utf-8.inc.php @@ -1545,4 +1545,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/slovak-utf-8.inc.php b/lang/slovak-utf-8.inc.php index 080170c2a..18636dd87 100644 --- a/lang/slovak-utf-8.inc.php +++ b/lang/slovak-utf-8.inc.php @@ -1543,4 +1543,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/slovenian-utf-8.inc.php b/lang/slovenian-utf-8.inc.php index 90b62833d..b1512c92f 100644 --- a/lang/slovenian-utf-8.inc.php +++ b/lang/slovenian-utf-8.inc.php @@ -1562,4 +1562,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/spanish-utf-8.inc.php b/lang/spanish-utf-8.inc.php index df71e3a66..392161834 100644 --- a/lang/spanish-utf-8.inc.php +++ b/lang/spanish-utf-8.inc.php @@ -1540,4 +1540,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/swedish-utf-8.inc.php b/lang/swedish-utf-8.inc.php index ae78b73ed..7c23348dd 100644 --- a/lang/swedish-utf-8.inc.php +++ b/lang/swedish-utf-8.inc.php @@ -1539,4 +1539,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/tatarish-utf-8.inc.php b/lang/tatarish-utf-8.inc.php index 46cb0895d..ddee36e07 100644 --- a/lang/tatarish-utf-8.inc.php +++ b/lang/tatarish-utf-8.inc.php @@ -1553,4 +1553,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/thai-utf-8.inc.php b/lang/thai-utf-8.inc.php index b7ed548b6..4972e11c8 100644 --- a/lang/thai-utf-8.inc.php +++ b/lang/thai-utf-8.inc.php @@ -1564,4 +1564,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/turkish-utf-8.inc.php b/lang/turkish-utf-8.inc.php index c4445a46b..8b196bb8a 100644 --- a/lang/turkish-utf-8.inc.php +++ b/lang/turkish-utf-8.inc.php @@ -1546,4 +1546,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/ukrainian-utf-8.inc.php b/lang/ukrainian-utf-8.inc.php index ba3a0f182..d1c6dfd66 100644 --- a/lang/ukrainian-utf-8.inc.php +++ b/lang/ukrainian-utf-8.inc.php @@ -1562,4 +1562,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/uzbek_cyrillic-utf-8.inc.php b/lang/uzbek_cyrillic-utf-8.inc.php index c415d6aa5..e8faeca51 100644 --- a/lang/uzbek_cyrillic-utf-8.inc.php +++ b/lang/uzbek_cyrillic-utf-8.inc.php @@ -1544,4 +1544,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/lang/uzbek_latin-utf-8.inc.php b/lang/uzbek_latin-utf-8.inc.php index 7c0431b83..593aa15f9 100644 --- a/lang/uzbek_latin-utf-8.inc.php +++ b/lang/uzbek_latin-utf-8.inc.php @@ -1544,4 +1544,22 @@ $strTrackingVersionActivated = 'Tracking for %s.%s , version %s is activated.'; $strTrackingVersionDeactivated = 'Tracking for %s.%s , version %s is deactivated.'; //to translate $strTrackingVersionSnapshotSQL = 'Version %s snapshot (SQL code)'; //to translate $strTrackingDatabaseLog = 'Database Log'; //to translate +$strSynchronize = 'Synchronize'; //to translate +$strSynchronizationNote='Target database will be completely synchronized with source database. Source database will remain unchanged.'; //to translate +$strSynchronizeDb= 'Synchronize Databases'; //to translate +$strApplyChanges='Apply Selected Changes'; //to translate +$strStructureSyn = 'Structure Synchronization'; //to translate +$strDataSyn = 'Data Synchronization'; //to translate +$strStructureDiff = 'Structure Difference' ; //to translate +$strDataDiff = 'Data Difference'; //to translate +$strTableCreate = 'Create Table'; //to translate +$strTableAddColumn = 'Add Column(s)'; //to translate +$strTableRemoveColumn = 'Remove Column(s)'; //to translate +$strTableAlterColumn = 'Alter Column(s)'; //to translate +$strTableRemoveIndex = 'Remove Index(s)'; //to translate +$strTableAlterIndex = 'Alter Index(s)'; //to translate +$strTableApplyIndex = 'Apply Index(s)'; //to translate +$strTableUpdateRow = 'Update Row(s)'; //to translate +$strTableInsertRow = 'Insert Row(s)'; //to translate +$strTableDeleteRows = 'Would you like to delete all the previous rows from target tables?'; //to translate ?> diff --git a/libraries/database_interface.lib.php b/libraries/database_interface.lib.php index 6eea5f57f..dad54e318 100644 --- a/libraries/database_interface.lib.php +++ b/libraries/database_interface.lib.php @@ -825,6 +825,79 @@ function PMA_DBI_get_columns($database, $table, $full = false, $link = null) } /** + * array PMA_DBI_get_column_values (string $database, string $table, string $column , mysql db link $link = null) + * + * @param string $database name of database + * @param string $table name of table to retrieve columns from + * @param string $column name of the column to retrieve data from + * @param mixed $link mysql link resource + * @return array $field_values + */ + +function PMA_DBI_get_column_values($database, $table, $column, $link = null) +{ + $query = 'SELECT '; + for($i=0; $i< sizeof($column); $i++) + { + $query.= PMA_backquote($column[$i]); + if($i < (sizeof($column)-1)) + { + $query.= ', '; + } + } + $query.= ' FROM ' . PMA_backquote($database) . '.' . PMA_backquote($table); + $field_values = PMA_DBI_fetch_result($query, null, null, $link); + + if (! is_array($field_values) || count($field_values) < 1) { + return false; + } + return $field_values; +} +/** + * array PMA_DBI_get_table_data (string $database, string $table, mysql db link $link = null) + * + * @param string $database name of database + * @param string $table name of table to retrieve columns from + * @param mixed $link mysql link resource + * @return array $result + */ + + function PMA_DBI_get_table_data($database, $table, $link = null) + { + + $result = PMA_DBI_fetch_result( + 'SELECT * FROM ' . PMA_backquote($database) . '.' . PMA_backquote($table), + null,null, $link); + + if (! is_array($result) || count($result) < 1) { + return false; + } + return $result; + } + +/** +* array PMA_DBI_get_table_indexes($database, $table, $link = null) +* +* @param string $database name of database +* @param string $table name of the table whose indexes are to be retreived +* @param mixed $link mysql link resource +* @return array $indexes +*/ + +function PMA_DBI_get_table_indexes($database, $table, $link = null) +{ + + $indexes = PMA_DBI_fetch_result( + 'SHOW INDEXES FROM ' .PMA_backquote($database) . '.' . PMA_backquote($table), + null, null, $link); + + if (! is_array($indexes) || count($indexes) < 1) { + return false; + } + return $indexes; +} + + /** * returns value of given mysql server variable * * @param string $var mysql server variable name @@ -832,6 +905,8 @@ function PMA_DBI_get_columns($database, $table, $full = false, $link = null) * @param mixed $link mysql link resource|object * @return mixed value for mysql server variable */ + + function PMA_DBI_get_variable($var, $type = PMA_DBI_GETVAR_SESSION, $link = null) { if ($link === null) { diff --git a/libraries/server_links.inc.php b/libraries/server_links.inc.php index 6edb5ce3e..9ba9b8408 100644 --- a/libraries/server_links.inc.php +++ b/libraries/server_links.inc.php @@ -83,6 +83,10 @@ $tabs['import']['icon'] = 'b_import.png'; $tabs['import']['link'] = 'server_import.php'; $tabs['import']['text'] = $strImport; +$tabs['import']['icon'] = 's_sync.png'; +$tabs['import']['link'] = 'server_synchronize.php'; +$tabs['import']['text'] = $strSynchronize; + echo PMA_generate_html_tabs($tabs, array()); unset($tabs); diff --git a/libraries/server_synchronize.lib.php b/libraries/server_synchronize.lib.php new file mode 100644 index 000000000..bbdba0414 --- /dev/null +++ b/libraries/server_synchronize.lib.php @@ -0,0 +1,1332 @@ + 1){ + for ($k=0; $k < sizeof($is_key); $k++) + { + $trg_select_query .= $is_key[$k]."='". $source_result_set[$j][$is_key[$k]]."'"; + if ($k < (sizeof($is_key)-1)){ + $trg_select_query .= " AND "; + } + } + } + + $target_result_set = PMA_DBI_fetch_result($trg_select_query, null, null, $trg_link); + if ($target_result_set) { + + $src_select_query = "SELECT * FROM ". PMA_backquote($src_db) . "." + .PMA_backquote($matching_table[$matching_table_index])." WHERE "; + + if (sizeof($is_key) == 1) { + $src_select_query .= $is_key[0]."='". $source_result_set[$j]."'"; + } else if(sizeof($is_key) > 1){ + for ($k=0; $k< sizeof($is_key); $k++) + { + $src_select_query .= $is_key[$k]."='". $source_result_set[$j][$is_key[$k]]."'"; + if ($k < (sizeof($is_key)-1)){ + $src_select_query .= " AND "; + } + } + } + + $src_result_set = PMA_DBI_fetch_result ($src_select_query, null, null, $src_link); + + /** + * Comparing each corresponding field of the source and target matching rows. + * Placing the primary key, value of primary key, field to be updated, and the + * new value of field to be updated in each row of the update array. + */ + for ($m=0; ($m < $fields_num[$matching_table_index]) && ($starting_index == 0) ; $m++) + { + if (isset($src_result_set[0][$fld[$m]])) { + if (isset($target_result_set[0][$fld[$m]])) { + if (($src_result_set[0][$fld[$m]] != $target_result_set[0][$fld[$m]]) && (!(in_array($fld[$m],$is_key)))) { + if (sizeof($is_key) == 1) { + if ($source_result_set[$j]) { + $update_array[$matching_table_index][$update_row][$is_key[0]] = $source_result_set[$j]; + } + } else if (sizeof($is_key) > 1) { + for($n=0; $n 1) { + for($n=0; $n 1) { + for($l=0; $l 1) { + for($l=0; $l 1) && $all_keys_match) { + $row = 0; + if (isset($target_key_values)) { + for ($i=0; $i < sizeof($target_key_values); $i++) + { + $is_present = false; + for ($j=0; $j < sizeof($source_key_values) && ($is_present == false) ; $j++) + { + $check = true; + for ($k=0; $k < sizeof($trg_keys[$matching_table_index]); $k++) + { + if ($target_key_values[$i][$trg_keys[$matching_table_index][$k]] != $source_key_values[$j][$trg_keys[$matching_table_index][$k]]) { + $check = false; + } + } + if ($check) { + $is_present = true; + } + } + if (!($is_present)) { + for ($l=0; $l 0) { + $query = "UPDATE ". PMA_backquote($trg_db) . "." .PMA_backquote($table[$matching_table_index])." SET "; + + for ($update_field=0; $update_field < $update_fields_num; $update_field = $update_field+2) { + if (isset($update_array[$matching_table_index][$update_row][$update_field]) && isset($update_array[$matching_table_index][$update_row][$update_field+1])) { + $query.= $update_array[$matching_table_index][$update_row][$update_field]."='".$update_array[$matching_table_index][$update_row][$update_field+1]."'"; + } + if ($update_field < ($update_fields_num-2)) { + $query.= ", "; + } + } + $query.= " WHERE "; + if (isset($matching_table_keys[$matching_table_index])) { + for($key=0; $key < sizeof($matching_table_keys[$matching_table_index]); $key++) + { + if (isset($matching_table_keys[$matching_table_index][$key])) { + + $query.= $matching_table_keys[$matching_table_index][$key]."='".$update_array[$matching_table_index][$update_row][$matching_table_keys[$matching_table_index][$key]]."'"; + } + if ($key < (sizeof($matching_table_keys[$matching_table_index])-1)) { + $query.= " AND "; + } + } + } + if ($display == 'true') { + echo "

".$query."

"; + } + PMA_DBI_try_query($query, $trg_link, 0); + } + } + } + } + } +} +/** +* PMA_insertIntoTargetTable() inserts missing rows in the target table using $array_insert[$matching_table_index] +* +* @uses PMA_DBI_fetch_result() +* @uses PMA_backquote() +* +* +* @param $matching_table array containing matching table names +* @param $src_db name of source database +* @param $trg_db name of target database +* @param $src_link connection established with source server +* @param $trg_link connection established with target server +* @param $table_fields array containing field names of a table +* @param $array_insert +* @param $matching_table_index index of matching table in matching_table_array +* @param $matching_tables_keys array containing field names that are keys in the matching table +* @param $source_columns array containing source column information +* @param $add_column_array array containing column names that are to be added in target table +* @param $criteria array containing criterias like type, null, collation, default etc +* @param $target_tables_keys array containing field names that are keys in the target table +* @param $uncommon_tables array containing table names that are present in source db but not in targt db +* @param $uncommon_tables_fields array containing field names of the uncommon tables +* @param $uncommon_cols column names that are present in target table and not in source table +* @param $alter_str_array array containing column names that are to be altered +* @param $source_indexes column names on which indexes are made in source table +* @param $target_indexes column names on which indexes are made in target table +* @param $add_indexes_array array containing column names on which index is to be added in target table +* @param $alter_indexes_array array containing column names whose indexes are to be altered. Only index name and uniqueness of an index can be changed +* @param $delete_array array containing rows that are to be deleted +* @param $update_array array containing rows that are to be updated in target +* @param $display contains true or false value. +* +*/ +function PMA_insertIntoTargetTable($matching_table, $src_db, $trg_db, $src_link, $trg_link, $table_fields, &$array_insert, $matching_table_index, + $matching_tables_keys, $source_columns, &$add_column_array, $criteria, $target_tables_keys, $uncommon_tables, &$uncommon_tables_fields,$uncommon_cols, + &$alter_str_array,&$source_indexes, &$target_indexes, &$add_indexes_array, &$alter_indexes_array, &$delete_array, &$update_array, $display) +{ + if(isset($array_insert[$matching_table_index])) { + if (sizeof($array_insert[$matching_table_index])) { + for ($insert_row = 0; $insert_row< sizeof($array_insert[$matching_table_index]); $insert_row++) + { + if (isset($array_insert[$matching_table_index][$insert_row][$matching_tables_keys[$matching_table_index][0]])) { + + $select_query = "SELECT * FROM ". PMA_backquote($src_db) . "." .PMA_backquote($matching_table[$matching_table_index])." WHERE "; + for ($i=0; $i < sizeof($matching_tables_keys[$matching_table_index]); $i++) + { + $select_query.= $matching_tables_keys[$matching_table_index][$i]."='"; + $select_query.= $array_insert[$matching_table_index][$insert_row][$matching_tables_keys[$matching_table_index][$i]]."'" ; + + if ($i < (sizeof($matching_tables_keys[$matching_table_index])-1)) { + $select_query.= " AND "; + } + } + $select_query.= "; "; + $result = PMA_DBI_fetch_result ($select_query, null, null, $src_link); + $insert_query = "INSERT INTO ". PMA_backquote($trg_db) . "." .PMA_backquote($matching_table[$matching_table_index])." ("; + + for($field_index=0; $field_index < sizeof($table_fields[$matching_table_index]); $field_index++) + { + $insert_query .= $table_fields[$matching_table_index][$field_index]; + + $is_fk_query = "SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = '" . $trg_db ."' + AND TABLE_NAME = '" .$matching_table[$matching_table_index]. "'AND COLUMN_NAME = '". + $table_fields[$matching_table_index][$field_index]."' AND TABLE_NAME <> REFERENCED_TABLE_NAME;" ; + + $is_fk_result = PMA_DBI_fetch_result($is_fk_query, null, null, $trg_link); + if (sizeof($is_fk_result)>0) { + for ($j = 0; $j < sizeof($is_fk_result); $j++) + { + $table_index = array_keys($matching_table, $is_fk_result[$j]['REFERENCED_TABLE_NAME']); + + if (isset($alter_str_array[$table_index[0]])) { + PMA_alterTargetTableStructure($trg_db, $trg_link, $matching_tables, $source_columns, $alter_str_array, $matching_tables_fields, + $criteria, $matching_tables_keys, $target_tables_keys, $table_index[0], $display); + unset($alter_str_array[$table_index[0]]); + } + if (isset($uncommon_columns[$table_index[0]])) { + PMA_removeColumnsFromTargetTable($trg_db, $trg_link, $matching_tables, $uncommon_columns, $table_index[0], $display); + unset($uncommon_columns[$table_index[0]]); + } + if (isset($add_column_array[$table_index[0]])) { + + PMA_findDeleteRowsFromTargetTables($delete_array, $matching_tables, $table_index[0], $target_tables_keys, $matching_tables_keys, + $trg_db, $trg_link, $src_db, $src_link); + + if (isset($delete_array[$table_index[0]])) { + PMA_deleteFromTargetTable($trg_db, $trg_link, $matching_tables, $table_index[0], $target_tables_keys, $delete_array, $display); + unset($delete_array[$table_index[0]]); + } + PMA_addColumnsInTargetTable($src_db, $trg_db, $src_link, $trg_link, $matching_tables, $source_columns, $add_column_array, + $matching_tables_fields, $criteria, $matching_tables_keys, $target_tables_keys, $uncommon_tables,$uncommon_tables_fields, + $table_index[0], $uncommon_cols, $display); + unset($add_column_array[$table_index[0]]); + } + if (isset($add_indexes_array[$table_index[0]]) || isset($remove_indexes_array[$table_index[0]]) + ||isset($alter_indexes_array[$table_index[0]])) { + + PMA_applyIndexesDiff ($trg_db, $trg_link, $matching_tables, $source_indexes, $target_indexes, $add_indexes_array, $alter_indexes_array, + $remove_indexes_array, $table_index[0], $display); + + unset($add_indexes_array[$table_index[0]]); + unset($alter_indexes_array[$table_index[0]]); + unset($remove_indexes_array[$table_index[0]]); + } + if(isset($update_array[$table_index[0]])) { + PMA_updateTargetTables($matching_tables, $update_array, $src_db, $trg_db, $trg_link, $table_index[0], $matching_table_keys, + $display); + unset($update_array[$table_index[0]]); + } + if (isset($array_insert[$table_index[0]])) { + PMA_insertIntoTargetTable($matching_table, $src_db, $trg_db, $src_link, $trg_link, $table_fields, $array_insert, + $table_index[0], $matching_tables_keys, $source_columns, $add_column_array, $criteria, $target_tables_keys, $uncommon_tables, + $uncommon_tables_fields, $uncommon_cols, $alter_str_array, $source_indexes, $target_indexes, $add_indexes_array, + $alter_indexes_array, $delete_array, $update_array, $display); + unset($array_insert[$table_index[0]]); + } + } + } + if ($field_index < sizeof($table_fields[$matching_table_index])-1) { + $insert_query .= ", "; + } + } + $insert_query.= ") VALUES("; + if(sizeof($table_fields[$matching_table_index])== 1) { + $insert_query .= "'".$result[0] . "'"; + } else { + for($field_index=0; $field_index < sizeof($table_fields[$matching_table_index]); $field_index++) + { + if (isset($result[0][$table_fields[$matching_table_index][$field_index]])) { + $insert_query .= "'".$result[0][$table_fields[$matching_table_index][$field_index]]."'"; + } else { + $insert_query .= "'NULL'"; + } + if ($field_index < (sizeof($table_fields[$matching_table_index]))-1) { + $insert_query .= " ," ; + } + } + } + $insert_query .= ");"; + if ($display == 'true') { + echo "

".$insert_query."

"; + } + PMA_DBI_try_query($insert_query, $trg_link, 0); + } + } + } + } +} +/** +* PMA_createTargetTables() Create the missing table $uncommon_table in target database +* +* @uses PMA_DBI_get_fields() +* @uses PMA_backquote() +* @uses PMA_DBI_fetch_result() +* +* @param $src_db name of source database +* @param $trg_db name of target database +* @param $trg_link connection established with target server +* @param $src_link connection established with source server +* @param $uncommon_table name of table present in source but not in target +* @param $table_index index of table in matching_table_array +* @param $uncommon_tables_fields field names of the uncommon table +*/ +function PMA_createTargetTables($src_db, $trg_db, $src_link, $trg_link, &$uncommon_tables, $table_index, &$uncommon_tables_fields, $display) +{ + if (isset($uncommon_tables[$table_index])) { + + $fields_result = PMA_DBI_get_fields($src_db, $uncommon_tables[$table_index]); + $fields = array(); + foreach ($fields_result as $each_field) + { + $field_name = $each_field['Field']; + $fields[]= $field_name; + } + $uncommon_tables_fields[$table_index] = $fields; + + $Show_create_query = "SHOW CREATE TABLE ".PMA_backquote($src_db). '.' .PMA_backquote($uncommon_tables[$table_index]); + $Show_create_result = PMA_DBI_fetch_result($Show_create_query, null, null, $src_link); + $Create_Query = $Show_create_result[0]['Create Table']; + $split_result = split(PMA_backquote($uncommon_tables[$table_index]), $Create_Query); + $Create_Table_Query = $split_result[0]. PMA_backquote($trg_db). '.' .PMA_backquote($uncommon_tables[$table_index]). $split_result[1]; + + $is_fk_query = "SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = '" . $src_db ."' + AND TABLE_NAME = '" .$uncommon_tables[$table_index]. "' AND TABLE_NAME <> REFERENCED_TABLE_NAME;" ; + + $is_fk_result = PMA_DBI_fetch_result($is_fk_query, null, null, $src_link); + if (sizeof($is_fk_result)>0) { + for ($j = 0; $j < sizeof($is_fk_result); $j++) + { + if (in_array($is_fk_result[$j]['REFERENCED_TABLE_NAME'],$uncommon_tables)) { + $table_index = array_keys($uncommon_tables, $is_fk_result[$j]['REFERENCED_TABLE_NAME']); + PMA_createTargetTables($src_db, $trg_db, $trg_link, $src_link, $uncommon_tables, $table_index[0], $uncommon_tables_fields, $display); + unset($uncommon_tables[$table_index[0]]); + } + } + } + if ($display == 'true') { + echo '

'.$Create_Table_Query.'

'; + } + PMA_DBI_try_query($Create_Table_Query, $trg_link, 0); + } +} +/** +* PMA_populateTargetTables() inserts data into uncommon tables after they have been created +* @uses PMA_DBI_fetch_result() +* @uses PMA_backquote() +* @uses sizeof() +* @uses PMA_DBI_try_query() +* +* @param $src_db name of source database +* @param $trg_db name of target database +* @param $src_link connection established with source server +* @param $trg_link connection established with target server +* @param $uncommon_tables array containing uncommon table names (table names that are present in source but not in target db) +* @param $table_index index of table in matching_table_array +* @param $uncommon_tables_fields field names of the uncommon table +*/ +function PMA_populateTargetTables($src_db, $trg_db, $src_link, $trg_link, $uncommon_tables, $table_index, $uncommon_tables_fields, $display) +{ + $table_data = PMA_DBI_fetch_result('SELECT * FROM '. PMA_backquote($src_db) . '.' .PMA_backquote($uncommon_tables[$table_index]), null, null, $src_link); + + if(sizeof($table_data)!= 0 ) + { + for($row=0; $row < sizeof($table_data); $row++) + { + $insert_query = 'INSERT INTO '. PMA_backquote($trg_db) . '.' .PMA_backquote($uncommon_tables[$table_index]).' VALUES('; + for($y=0; $y < sizeof($uncommon_tables_fields[$table_index]) ;$y++) + { + $insert_query .= "'".$table_data[$row][$uncommon_tables_fields[$table_index][$y]]."'"; + if ($y < (sizeof($uncommon_tables_fields[$table_index])-1)) { + $insert_query .= ','; + } + } + $insert_query .= ');'; + if ($display == 'true') { + echo '

'.$insert_query.'

'; + } + PMA_DBI_try_query($insert_query, $trg_link, 0); + } + } +} +/** +* PMA_deleteFromTargetTable() delete rows from target table +* @uses sizeof() +* @uses PMA_backquote() +* @uses PMA_DBI_try_query() +* +* +* @param $trg_db name of target database +* @param $trg_link connection established with target server +* @param $matching_tables array containing matching table names +* @param $table_index index of table in matching_table_array +* @param $target_table_keys primary key names of the target tables +* @param $delete array array containing the key values of rows that are to be deleted +* @param $display true/false value +*/ +function PMA_deleteFromTargetTable($trg_db, $trg_link, $matching_tables, $table_index, $target_tables_keys, $delete_array, $display) +{ + for($i=0; $i < sizeof($delete_array[$table_index]); $i++) + { + $delete_query; + if (isset($target_tables_keys[$table_index])) { + $delete_query = 'DELETE FROM '. PMA_backquote($trg_db) . '.' .PMA_backquote($matching_tables[$table_index]).' WHERE '; + for($y=0; $y < sizeof($target_tables_keys[$table_index]) ;$y++) + { + $delete_query .= $target_tables_keys[$table_index][$y]." = '"; + + if (sizeof($target_tables_keys[$table_index]) == 1) { + + $delete_query.= $delete_array[$table_index][$i]."'"; + + } else if (sizeof($target_tables_keys[$table_index]) > 1) { + + $delete_query.= $delete_array[$table_index][$i][$target_tables_keys[$table_index][$y]]."'"; + } + if ($y < (sizeof($target_tables_keys[$table_index])-1)) { + $delete_query .= ' AND '; + } + $pk_query = "SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_SCHEMA = '" . $trg_db . "' + AND REFERENCED_TABLE_NAME = '" .$matching_tables[$table_index]."' AND REFERENCED_COLUMN_NAME = '" + .$target_tables_keys[$table_index][$y] . "' AND TABLE_NAME <> REFERENCED_TABLE_NAME;"; + + $pk_query_result = PMA_DBI_fetch_result($pk_query, null, null, $trg_link); + $result_size = sizeof($pk_query_result); + + if ($result_size > 0) { + for ($b=0; $b < $result_size; $b++) + { + $drop_pk_query = "DELETE FROM " . PMA_backquote($pk_query_result[$b]['TABLE_SCHEMA']) .".".PMA_backquote($pk_query_result[$b]['TABLE_NAME'])." + WHERE " . $pk_query_result[$b]['COLUMN_NAME']." = ".$target_tables_keys[$table_index][$y].";"; + PMA_DBI_try_query($drop_pk_query, $trg_link, 0); + } + } + } + } + if ($display == 'true') { + echo '

'.$delete_query.'

'; + } + PMA_DBI_try_query($delete_query, $trg_link, 0); + } +} +/** +* PMA_structureDiffInTables() Gets all the column information for source and target table. +* Compare columns on the basics of their names. +* If column exist in target then compare Type, Null, Collation, Key, Default and Comment for that column. +* If column does not exist in target table then it is placed in $add_column_array. +* If column exist in target table but criteria is different then it is palced in $alter_str_array. +* If column does not exist in source table but is present in target table then it is placed in $uncommon_columns. +* Keys for all the source tables that have a corresponding target table are placed in $matching_tables_keys. +* Keys for all the target tables that have a corresponding source table are placed in $target_tables_keys. +* +* @uses PMA_DBI_get_columns_full() +* @uses sizeof() +* +* @param $src_db name of source database +* @param $trg_db name of target database +* @param $src_link connection established with source server +* @param $trg_link connection established with target server +* @param $matching_tables array containing names of matching tables +* @param $source_columns array containing columns information of the source tables +* @param $target_columns array containing columns information of the target tables +* @param $alter_str_array three dimensional associative array first index being the matching table index, second index being column name for which target +* column have some criteria different and third index containing the criteria which is different. +* @param $add_column_array two dimensional associative array, first index of the array contain the matching table number and second index contain the +* column name which is to be added in the target table +* @param $uncommon_columns array containing the columns that are present in the target table but not in the source table +* @param $criteria array containing the criterias which are to be checked for field that is present in source table and target table +* @param $target_tables_keys array containing the field names which is key in the target table +* @param $matching_table_index integer number of the matching table +* +*/ +function PMA_structureDiffInTables($src_db, $trg_db, $src_link, $trg_link, $matching_tables, &$source_columns, &$target_columns, &$alter_str_array, + &$add_column_array, &$uncommon_columns, $criteria, &$target_tables_keys, $matching_table_index) +{ + //Gets column information for source and target table + $source_columns[$matching_table_index] = PMA_DBI_get_columns_full($src_db, $matching_tables[$matching_table_index], null, $src_link); + $target_columns[$matching_table_index] = PMA_DBI_get_columns_full($trg_db, $matching_tables[$matching_table_index], null, $trg_link); + foreach ($source_columns[$matching_table_index] as $column_name => $each_column) + { + if(isset($target_columns[$matching_table_index][$column_name]['Field'])) { + //If column exist in target table then matches criterias like type, null, collation, key, default, comment of the column + for ($i=0; $i $each_column) + { + if(!(isset($source_columns[$matching_table_index][$fld_name]['Field']))) { + $fields_uncommon[] = $fld_name; + } + if($target_columns[$matching_table_index][$fld_name]['Key'] == 'PRI') { + $keys[] = $fld_name; + } + } + if (isset($fields_uncommon)) { + $uncommon_columns[$matching_table_index] = $fields_uncommon; + } + if (isset($keys)) { + $target_tables_keys[$matching_table_index] = $keys; + } +} +/** +* PMA_addColumnsInTargetTable() adds column that are present in source table but not in target table +* @uses sizeof() +* @uses in_array() +* @uses array_keys() +* @uses PMA_checkForeignKeys() +* @uses PMA_createTargetTables() +* @uses PMA_DBI_try_query() +* @uses PMA_DBI_fetch_result() +* +* @param $src_db name of source database +* @param $trg_db name of target database +* @param $src_link connection established with source server +* @param $trg_link connection established with target server +* @param $matching_tables array containing names of matching tables +* @param $source_columns array containing columns information of the source tables +* @param $add_column_array array containing the names of the column(field) that are to be added in the target +* @param $matching_tables_fields +* @param $criteria array containing the criterias +* @param $matching_tables_keys array containing the field names which is key in the source table +* @param $target_tables_keys array containing the field names which is key in the target table +* @param $uncommon_tables array containing the table names that are present in source db and not in target db +* @param $uncommon_tables_fields array containing the names of the fields of the uncommon tables +* @param $table_counter integer number of the matching table +* @param $uncommon_cols +*/ +function PMA_addColumnsInTargetTable($src_db, $trg_db, $src_link, $trg_link, $matching_tables, $source_columns, &$add_column_array, $matching_tables_fields, + $criteria, $matching_tables_keys, $target_tables_keys, $uncommon_tables, &$uncommon_tables_fields, $table_counter, $uncommon_cols, $display) +{ + for ($i = 0; $i'.$query.'

'; + } + PMA_DBI_try_query($query, $trg_link, 0); + + //Checks if column to be added is a foreign key or not + $is_fk_query = "SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = '" . $trg_db ."' AND TABLE_NAME = '" + .$matching_tables[$table_counter]. "' AND COLUMN_NAME ='". $add_column_array[$table_counter][$matching_tables_fields[$table_counter][$i]]. + "' AND TABLE_NAME <> REFERENCED_TABLE_NAME;" ; + + $is_fk_result = PMA_DBI_fetch_result($is_fk_query, null, null, $src_link); + + //If column is a foreign key then it is checked that referenced table exist in target db. If referenced table does not exist in target db then + //it is created first. + if (isset($is_fk_result)) { + if (in_array($is_fk_result[0]['REFERENCED_TABLE_NAME'], $uncommon_tables)) { + $table_index = array_keys($uncommon_tables, $is_fk_result[0]['REFERENCED_TABLE_NAME']); + PMA_checkForeignKeys($src_db, $src_link, $trg_db, $trg_link, $is_fk_result[0]['REFERENCED_TABLE_NAME'], $uncommon_tables, $uncommon_tables_fields); + PMA_createTargetTables($src_db, $trg_db, $trg_link, $src_link, $uncommon_tables, $table_index[0], $uncommon_tables_fields); + unset($uncommon_tables[$table_index[0]]); + } + $fk_query = "ALTER TABLE " . PMA_backquote($trg_db) . '.' . PMA_backquote($matching_tables[$table_counter]). + "ADD CONSTRAINT FOREIGN KEY " . $add_column_array[$table_counter][$matching_tables_fields[$table_counter][$i]] . " + (".$add_column_array[$table_counter][$matching_tables_fields[$table_counter][$i]].") REFERENCES " .PMA_backquote($trg_db) . + '.' . PMA_backquote($is_fk_result[0]['REFERENCED_TABLE_NAME']) . " (".$is_fk_result[0]['REFERENCED_COLUMN_NAME'] . ");"; + + PMA_DBI_try_query($fk_query, $trg_link, null); + } + } + } +} +/** +* PMA_checkForeignKeys() checks if the referenced table have foreign keys. +* @uses sizeof() +* @uses in_array() +* @uses array_keys() +* @uses PMA_checkForeignKeys() +* uses PMA_createTargetTables() +* +* @param $src_db name of source database +* @param $src_link connection established with source server +* @param $trg_db name of target database +* @param $trg_link connection established with target server +* @param $referenced_table table whose column is a foreign key in another table +* @param $uncommon_tables array containing names that are uncommon +* @param $uncommon_tables_fields field names of the uncommon table +*/ +function PMA_checkForeignKeys($src_db, $src_link, $trg_db, $trg_link ,$referenced_table, &$uncommon_tables, &$uncommon_tables_fields, $display) +{ + $is_fk_query = "SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = '" . $src_db ."' + AND TABLE_NAME = '" .$referenced_table. "' AND TABLE_NAME <> REFERENCED_TABLE_NAME;" ; + + $is_fk_result = PMA_DBI_fetch_result($is_fk_query, null, null, $src_link); + if (sizeof($is_fk_result)>0) { + for ($j = 0; $j < sizeof($is_fk_result); $j++) + { + if(in_array($is_fk_result[$j]['REFERENCED_TABLE_NAME'],$uncommon_tables)) { + $table_index = array_keys($uncommon_tables, $is_fk_result[$j]['REFERENCED_TABLE_NAME']); + PMA_checkForeignKeys($src_db, $src_link, $trg_db, $trg_link, $is_fk_result[$j]['REFERENCED_TABLE_NAME'], $uncommon_tables, + $uncommon_tables_fields, $display); + PMA_createTargetTables($src_db, $trg_db, $trg_link, $src_link, $uncommon_tables, $table_index[0], $uncommon_tables_fields, $display); + unset($uncommon_tables[$table_index[0]]); + } + } + } +} +/** +* PMA_alterTargetTableStructure() alters structure of the target table using $alter_str_array +* @uses sizeof() +* @uses PMA_DBI_fetch_result() +* @uses is_string() +* @uses is_numeric() +* @uses PMA_DBI_try_query() +* +* +* @param $trg_db name of target database +* @param $trg_link connection established with target server +* @param $matching_tables array containing names of matching tables +* @param $source_columns array containing columns information of the source table +* @param $alter_str_array array containing the column name and criteria which is to be altered for the targert table +* @param $matching_tables_fields array containing the name of the fields for the matching table +* @param $criteria array containing the criterias +* @param $matching_tables_keys array containing the field names which is key in the source table +* @param $target_tables_keys array containing the field names which is key in the target table +* @param $matching_table_index integer number of the matching table +*/ +function PMA_alterTargetTableStructure($trg_db, $trg_link, $matching_tables, &$source_columns, &$alter_str_array, $matching_tables_fields, $criteria, + &$matching_tables_keys, &$target_tables_keys, $matching_table_index, $display) +{ + $check = true; + //Checks if the criteria to be altered is primary key + for($v=0; $v < sizeof($matching_tables_fields[$matching_table_index]); $v++) + { + if (isset($alter_str_array[$matching_table_index][$matching_tables_fields[$matching_table_index][$v]]['Key'])) { + if ($alter_str_array[$matching_table_index][$matching_tables_fields[$matching_table_index][$v]]['Key'] == 'PRI' ) { + $check = false; + } + } + } + $pri_query; + if (!($check)) { + $pri_query = "ALTER TABLE ". PMA_backquote($trg_db) . '.' . PMA_backquote($matching_tables[$matching_table_index]); + if (sizeof($target_tables_keys[$matching_table_index]) > 0) { + $pri_query .= " DROP PRIMARY KEY ," ; + } + $pri_query.= " ADD PRIMARY KEY ("; + for ($z = 0; $z< sizeof($matching_tables_keys[$matching_table_index]); $z++) + { + $pri_query.= $matching_tables_keys[$matching_table_index][$z]; + if ($z < (sizeof($matching_tables_keys[$matching_table_index])-1)) { + $pri_query.= " , " ; + } + } + $pri_query .= ");"; + } + + if (isset($pri_query)) { + if ($display == 'true') { + echo '

'.$pri_query.'

'; + } + PMA_DBI_try_query ($pri_query, $trg_link, 0); + } + for ($t = 0; $t < sizeof($matching_tables_fields[$matching_table_index]); $t++) + { + if((isset($alter_str_array[$matching_table_index][$matching_tables_fields[$matching_table_index][$t]])) && (sizeof($alter_str_array[$matching_table_index][$matching_tables_fields[$matching_table_index][$t]]) > 0)) { + $sql_query = 'ALTER TABLE ' . PMA_backquote($trg_db) . '.' . PMA_backquote($matching_tables[$matching_table_index]). ' MODIFY ' . + $matching_tables_fields[$matching_table_index][$t]. ' ' . $source_columns[$matching_table_index][$matching_tables_fields[$matching_table_index][$t]]['Type']; + $found = false; + for ($i = 0; $i'.$sql_query.'

'; + } + PMA_DBI_try_query($sql_query, $trg_link, 0); + } + } + $check = false; + $query = "ALTER TABLE ". PMA_backquote($trg_db) . '.' . PMA_backquote($matching_tables[$matching_table_index]); + for($p=0; $p< sizeof($matching_tables_keys[$matching_table_index]); $p++) + { + if((isset($alter_str_array[$matching_table_index][$matching_tables_keys[$matching_table_index][$p]]['Key']))) { + $check = true; + $query .= ' MODIFY '. $matching_tables_keys[$matching_table_index][$p].' ' + . $source_columns[$matching_table_index][$matching_tables_fields[$matching_table_index][$p]]['Type'] .' Not Null '; + if ($p < (sizeof($matching_tables_keys[$matching_table_index])-1)) { + $query .= ', '; + } + } + } + if ($check) { + if ($display == 'true') { + echo '

'.$query.'

'; + } + PMA_DBI_try_query($query, $trg_link, 0); + } +} + +/** +* PMA_removeColumnsFromTargetTable() removes the columns which are present in target table but not in source table. +* @uses sizeof() +* @uses PMA_DBI_try_query() +* @uses PMA_DBI_fetch_result() +* +* @param $trg_db name of target database +* @param $trg_link connection established with target server +* @param $matching_tables array containing names of matching tables +* @param $uncommon_columns array containing the names of the column which are to be dropped from the target table +* @param $table_counter index of the matching table as in $matchiing_tables array +*/ +function PMA_removeColumnsFromTargetTable($trg_db, $trg_link, $matching_tables, $uncommon_columns, $table_counter, $display) +{ + if(isset($uncommon_columns[$table_counter])) { + $drop_query = "ALTER TABLE " . PMA_backquote($trg_db) . "." . PMA_backquote($matching_tables[$table_counter]); + for ($a = 0; $a < sizeof($uncommon_columns[$table_counter]); $a++) + { + //Checks if column to be removed is a foreign key in any table + $pk_query = "SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_SCHEMA = '" . $trg_db . "' + AND REFERENCED_TABLE_NAME = '" .$matching_tables[$table_counter]."' AND REFERENCED_COLUMN_NAME = '" + .$uncommon_columns[$table_counter][$a] . "' AND TABLE_NAME <> REFERENCED_TABLE_NAME;"; + + $pk_query_result = PMA_DBI_fetch_result($pk_query, null, null, $trg_link); + $result_size = sizeof($pk_query_result); + + if($result_size > 0) { + for ($b=0; $b< $result_size; $b++) + { + $drop_pk_query = "ALTER TABLE " . PMA_backquote($pk_query_result[$b]['TABLE_SCHEMA']) . ".".PMA_backquote($pk_query_result[$b]['TABLE_NAME'])." + DROP FOREIGN KEY " . $pk_query_result[$b]['CONSTRAINT_NAME'] . ", DROP COLUMN ".$pk_query_result[$b]['COLUMN_NAME'].";"; + PMA_DBI_try_query($drop_pk_query, $trg_link, 0); + } + } + $query = "SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = '" . $trg_db . "' AND TABLE_NAME = '" + .$matching_tables[$table_counter]."' AND COLUMN_NAME = '".$uncommon_columns[$table_counter][$a] . "' + AND TABLE_NAME <> REFERENCED_TABLE_NAME;"; + + $result = PMA_DBI_fetch_result($query, null, null, $trg_link); + + if(sizeof($result) > 0) { + $drop_query .= " DROP FOREIGN KEY " . $result[0]['CONSTRAINT_NAME'] . ","; + } + $drop_query .= " DROP COLUMN " . $uncommon_columns[$table_counter][$a]; + if ($a < (sizeof($uncommon_columns[$table_counter])-1)) { + $drop_query .= " , " ; + } + } + $drop_query .= ";" ; + + if ($display == 'true') { + echo '

'.$drop_query.'

'; + } + PMA_DBI_try_query($drop_query, $trg_link, 0); + } +} +/** +* PMA_indexesDiffInTables() compares the source table indexes with target table indexes and keep the indexes to be added in target table in $add_indexes_array +* indexes to be altered in $alter_indexes_array and indexes to be removed from target table in $remove_indexes_array. +* Only keyname and uniqueness characteristic of the indexes are altered. +* @uses sizeof() +* @uses PMA_DBI_get_table_indexes() +* +* @param $src_db name of source database +* @param $trg_db name of target database +* @param $src_link connection established with source server +* @param $trg_link connection established with target server +* @param $matching_tables array containing the matching tables name +* @param $source_indexes array containing the indexes of the source table +* @param $target_indexes array containing the indexes of the target table +* @param $add_indexes_array array containing the name of the column on which the index is to be added in the target table +* @param $alter_indexes_array array containing the name of the column on which the index is to be altered +* @param $remove_indexes_array array containing the key name of the index which is to be removed from the target table +* @param $table_counter number of the matching table +*/ +function PMA_indexesDiffInTables($src_db, $trg_db, $src_link, $trg_link, $matching_tables, &$source_indexes, &$target_indexes, &$add_indexes_array, + &$alter_indexes_array, &$remove_indexes_array, $table_counter) +{ + //Gets indexes information for source and target table + $source_indexes[$table_counter] = PMA_DBI_get_table_indexes($src_db, $matching_tables[$table_counter],$src_link); + $target_indexes[$table_counter] = PMA_DBI_get_table_indexes($trg_db, $matching_tables[$table_counter],$trg_link); + for ($a = 0; $a'.$sql.'

'; + } + PMA_DBI_try_query($sql, $trg_link, 0); + } + } + } + } + } + //Alter indexes of target table + if(isset($alter_indexes_array[$table_counter])) { + $query = "ALTER TABLE " . PMA_backquote($trg_db) . "." . PMA_backquote($matching_tables[$table_counter]) . " DROP INDEX " ; + for ($a = 0; $a < sizeof($source_indexes[$table_counter]); $a++) + { + if(isset($alter_indexes_array[$table_counter][$a])) { + $query .= $alter_indexes_array[$table_counter][$a+1] . " , ADD "; + for ($z = 0; $z < sizeof($source_indexes[$table_counter]); $z++) + { + if($source_indexes[$table_counter][$z]['Column_name'] == $alter_indexes_array[$table_counter][$a]) { + if ($source_indexes[$table_counter][$z]['Non_unique'] == '0') { + $query .= " UNIQUE "; + } + $query .= " INDEX " .$source_indexes[$table_counter][$z]['Key_name'] . " (" . $alter_indexes_array[$table_counter][$a] . " );"; + if ($display == 'true') { + echo '

'.$query.'

'; + } + PMA_DBI_try_query($query, $trg_link, 0); + } + } + } + } + } + //Removes indexes from targe table + if(isset($remove_indexes_array[$table_counter])) { + $drop_index_query = "ALTER TABLE " . PMA_backquote($trg_db) . "." . PMA_backquote($matching_tables[$table_counter]); + for ($a = 0; $a < sizeof($target_indexes[$table_counter]); $a++) + { + if(isset($remove_indexes_array[$table_counter][$a])) { + $drop_index_query .= " DROP INDEX " . $remove_indexes_array[$table_counter][$a]; + } + if ($a < (sizeof($remove_indexes_array[$table_counter])-1)) { + $drop_index_query .= " , " ; + } + } + $drop_index_query .= " ; " ; + if ($display == 'true') { + echo '

'.$drop_index_query.'

'; + } + PMA_DBI_try_query($drop_index_query, $trg_link, 0); + } +} +?> \ No newline at end of file diff --git a/server_synchronize.php b/server_synchronize.php new file mode 100644 index 000000000..4a998b9b6 --- /dev/null +++ b/server_synchronize.php @@ -0,0 +1,1242 @@ +' . "\n" ; + if(!$src_connection) { + echo "Could not connect to the source
"; + } + if(!$trg_connection){ + echo "Could not connect to the target"; + } + echo ''; + unset($_REQUEST['submit_connect']); + + } else if (($src_connection) && ($trg_connection)) { + /** + * Creating the link object for both source and target databases and + * selecting the source and target databases using these links + */ + $src_link = PMA_DBI_connect($src_username, $src_password, $is_controluser = false); + $src_db_selected = PMA_DBI_select_db($src_db, $src_link); + + $trg_link = PMA_DBI_connect($trg_username, $trg_password, $is_controluser = false); + $trg_db_selected = PMA_DBI_select_db($trg_db, $trg_link); + + if (($src_db_selected != 1) || ($trg_db_selected != 1)) { + /** + * Displays error string if the database(s) did not exist + */ + echo '
' . "\n" ; + if ($src_db_selected != 1) { + echo "'".$src_db."' database does not exists
"; + } + if ($trg_db_selected != 1) { + echo "'".$trg_db."' database does not exists
"; + } + echo '
'; + unset($_REQUEST['submit_connect']); + + } else if (($src_db_selected == 1) && ($trg_db_selected == 1)) { + + /** + * Using PMA_DBI_get_tables() to get all the tables + * from target and source databases. + */ + $src_tables = PMA_DBI_get_tables($src_db, $src_link); + $source_tables_num = sizeof($src_tables); + + $trg_tables = PMA_DBI_get_tables($trg_db, $trg_link); + $target_tables_num = sizeof($trg_tables); + + /** + * initializing arrays to save matching and non-matching + * table names from target and source databases. + */ + $unmatched_num_src = 0; + $source_tables_uncommon = array(); + $unmatched_num_trg = 0; + $target_tables_uncommon = array(); + $matching_tables = array(); + $matching_tables_num = 0; + + /** + * Using PMA_getMatchingTables to find which of the tables' names match + * in target and source database. + */ + PMA_getMatchingTables($trg_tables, $src_tables, $matching_tables, $source_tables_uncommon); + /** + * Finding the uncommon tables for the target database + * using function PMA_getNonMatchingTargetTables() + */ + PMA_getNonMatchingTargetTables($trg_tables, $matching_tables, $target_tables_uncommon); + + /** + * Initializing several arrays to save the data and structure + * difference between the source and target databases. + */ + $row_count = array(); //number of rows in source table that needs to be created in target database + $fields_num = array(); //number of fields in each matching table + $delete_array = array(); //stores the primary key values for target tables that have excessive rows than corresponding source tables. + $insert_array = array(array(array()));// stores the primary key values for the rows in each source table that are not present in target tables. + $update_array = array(array(array())); //stores the primary key values, name of field to be updated, value of the field to be updated for + // each row of matching table. + $matching_tables_fields = array(); //contains the fields' names for each matching table + $matching_tables_keys = array(); //contains the primary keys' names for each matching table + $uncommon_tables_fields = array(); //coantains the fields for all the source tables that are not present in target + $matching_tables_num = sizeof($matching_tables); + + $source_columns = array(); //contains the full columns' information for all the source tables' columns + $target_columns = array(); //contains the full columns' information for all the target tables' columns + $uncommon_columns = array(); //contains names of columns present in source table but absent from the corresponding target table + $source_indexes = array(); //contains indexes on all the source tables + $target_indexes = array(); //contains indexes on all the target tables + $add_indexes_array = array(); //contains the indexes name present in source but absent from target tables + $target_tables_keys = array(); //contains the keys of all the target tables + $alter_indexes_array = array(); //contains the names of all the indexes for each table that need to be altered in target database + $remove_indexes_array = array(); //contains the names of indexes that are excessive in target tables + $alter_str_array = array(array()); //contains the criteria for each column that needs to be altered in target tables + $add_column_array = array(array()); //contains the name of columns that need to be added in target tables + /** + * The criteria array contains all the criteria against which columns are compared for differences. + */ + $criteria = array('Field', 'Type', 'Null', 'Collation', 'Key', 'Default', 'Comment'); + + for($i=0; $i< sizeof($matching_tables); $i++) + { + /** + * Finding out all the differences structure, data and index diff for all the matching tables only + */ + PMA_dataDiffInTables($src_db, $trg_db, $src_link, $trg_link, $matching_tables, $matching_tables_fields, $update_array, $insert_array, + $delete_array, $fields_num, $i, $matching_tables_keys); + + PMA_structureDiffInTables($src_db, $trg_db, $src_link, $trg_link, $matching_tables, $source_columns, + $target_columns, $alter_str_array, $add_column_array, $uncommon_columns, $criteria, $target_tables_keys, $i); + + PMA_indexesDiffInTables($src_db, $trg_db, $src_link, $trg_link, $matching_tables, $source_indexes, $target_indexes, + $add_indexes_array, $alter_indexes_array,$remove_indexes_array, $i); + } + + for($j=0; $j< sizeof($source_tables_uncommon); $j++) + { + /** + * Finding out the number of rows to be added in tables that need to be added in target database + */ + PMA_dataDiffInUncommonTables($source_tables_uncommon, $src_db, $src_link, $j, $row_count); + } + /** + * Storing all arrays in session for use when page is reloaded for each button press + */ + $_SESSION['matching_tables'] = $matching_tables; + $_SESSION['update_array'] = $update_array; + $_SESSION['insert_array'] = $insert_array; + $_SESSION['src_db'] = $src_db; + $_SESSION['trg_db'] = $trg_db; + $_SESSION['matching_fields'] = $matching_tables_fields; + $_SESSION['src_uncommon_tables'] = $source_tables_uncommon; + $_SESSION['src_username'] = $src_username ; + $_SESSION['trg_username'] = $trg_username; + $_SESSION['src_password'] = $src_password; + $_SESSION['trg_password'] = $trg_password; + $_SESSION['trg_password'] = $trg_password; + $_SESSION['matching_tables_keys'] = $matching_tables_keys; + $_SESSION['uncommon_tables_fields'] = $uncommon_tables_fields; + $_SESSION['uncommon_tables_row_count'] = $row_count; + $_SESSION['target_tables_uncommon'] = $target_tables_uncommon; + $_SESSION['uncommon_tables'] = $source_tables_uncommon; + $_SESSION['delete_array'] = $delete_array; + $_SESSION['uncommon_columns'] = $uncommon_columns; + $_SESSION['source_columns'] = $source_columns; + $_SESSION['alter_str_array'] = $alter_str_array; + $_SESSION['target_tables_keys'] = $target_tables_keys; + $_SESSION['add_column_array'] = $add_column_array; + $_SESSION['criteria'] = $criteria; + $_SESSION['target_tables'] = $trg_tables; + $_SESSION['add_indexes_array'] = $add_indexes_array; + $_SESSION['alter_indexes_array'] = $alter_indexes_array; + $_SESSION['remove_indexes_array'] = $remove_indexes_array; + $_SESSION['source_indexes'] = $source_indexes; + $_SESSION['target_indexes'] = $target_indexes; + + /** + * Displays the sub-heading and icons showing Structure Synchronization and Data Synchronization + */ + echo '
' + . PMA_generate_common_hidden_inputs('', ''); + echo ' + + '; + echo ''; + echo ' +

' . "\n" + . ($GLOBALS['cfg']['MainPageIconic'] + ? '' . "\n" + : '') + . $strStructureSyn . "\n" + .'

' . "\n" .'

' . "\n" + . ($GLOBALS['cfg']['MainPageIconic'] + ? '' . "\n" + : '') + . $strDataSyn . "\n" + . '

' . "\n" .'
'; + + /** + * Displays the tables containing the source tables names, their difference with the target tables and target tables names + */ + echo '
'; + + echo ' + + + + '; + $odd_row = false; + /** + * Display the matching tables' names and difference, first + */ + for($i = 0; $i < count($matching_tables); $i++) + { + $num_of_updates = 0; + $num_of_insertions = 0; + /** + * Calculating the number of updates for each matching table + */ + if (isset($update_array[$i])) { + if (isset($update_array[$i][0][$matching_tables_keys[$i][0]])) { + if (isset($update_array[$i])) { + $num_of_updates = sizeof($update_array[$i]); + } else { + $num_of_updates = 0; + } + } else { + $num_of_updates = 0; + } + } + /** + * Calculating the number of insertions for each matching table + */ + if (isset($insert_array[$i])) { + if (isset($insert_array[$i][0][$matching_tables_keys[$i][0]])) { + if (isset($insert_array[$i])) { + $num_of_insertions = sizeof($insert_array[$i]); + } else { + $num_of_insertions = 0; + } + } else { + $num_of_insertions = 0; + } + } + /** + * Displays the name of the matching table + */ + $odd_row = !$odd_row; + echo ' + + + '; + } + /** + * Displays the tables' names present in source but missing from target + */ + for ($j = 0; $j < count($source_tables_uncommon); $j++) + { + $odd_row = !$odd_row; + echo ' + '; + + echo ' + '; + } + foreach ($target_tables_uncommon as $tbl_nc_name) + { + $odd_row = !$odd_row; + echo ' + '; + echo ''; + } + /** + * Displays the target tables names + */ + echo '
Source Database: '. $src_db .' Difference
' . $matching_tables[$i]. "\n" . ''; + /** + * Calculating the number of alter columns, number of columns to be added, number of columns to be removed, + * number of index to added and renmoved. + */ + $num_alter_cols = 0; + $num_insert_cols = 0; + $num_remove_cols = 0; + $num_add_index = 0; + $num_remove_index = 0; + + if (isset($alter_str_array[$i])) { + $num_alter_cols = sizeof($alter_str_array[$i]); + } + if (isset($add_column_array[$i])) { + $num_insert_cols = sizeof($add_column_array[$i]); + } + if (isset($uncommon_columns[$i])) { + $num_remove_cols = sizeof($uncommon_columns[$i]); + } + if (isset($add_indexes_array[$i])) { + $num_add_index = sizeof($add_indexes_array[$i]); + } + if (isset($remove_indexes_array[$i])) { + $num_remove_index = sizeof($remove_indexes_array[$i]); + } + /** + * Display the red button of structure synchronization if there exists any structure difference or index difference. + */ + if (($num_alter_cols > 0) || ($num_insert_cols > 0) || ($num_remove_cols > 0) || ($num_add_index > 0) ||($num_remove_index > 0)) { + + echo 'Click to Select'. "\n" ; + + } + /** + * Display the green button of data synchronization if there exists any data difference. + */ + if (isset($update_array[$i]) || isset($insert_array[$i])) { + if (isset($update_array[$i][0][$matching_tables_keys[$i][0]]) || isset($insert_array[$i][0][$matching_tables_keys[$i][0]])) { + + echo 'Click to Select'. "\n"; + } + } + echo '
+ ' .$source_tables_uncommon[$j]. "\n" . 'Click to Select'. "\n" ; + + if($row_count[$j]>0) + { + echo 'Click to Select'. "\n"; + } + echo '
     
'; + echo ' + + + '; + $odd_row = false; + foreach ($matching_tables as $tbl_name) + { + $odd_row = !$odd_row; + echo ' + '; + echo ''; + } + foreach ($source_tables_uncommon as $tbl_nc_name) + { + $odd_row = !$odd_row; + echo ' + + '; + } + foreach ($target_tables_uncommon as $tbl_nc_name) + { + $odd_row = !$odd_row; + echo ' + '; + echo ''; + } + echo '
Target Database: ' . $trg_db . '
' .$tbl_name . '
' .$tbl_nc_name . "\n" . ' (Not present)
- ' .$tbl_nc_name . '
'; + echo '
'; + + /** + * This "list" div will contain a table and each row will depict information about structure/data diffrence in tables. + * Rows will be generated dynamically as soon as the colored buttons "D" or "S" are clicked. + */ + + echo '
+ + + + + + + + + + + + + + + + + + + + + +
'. $strTable .' '. $strStructureDiff .' '. $strDataDiff .'
'. $strTableName .''. $strTableCreate .''. $strTableAddColumn .''. $strTableRemoveColumn .''. $strTableAlterColumn .''. $strTableRemoveIndex .''. $strTableApplyIndex .''. $strTableUpdateRow .''. $strTableInsertRow .'
+
'; + /** + * This fieldset displays the checkbox to confirm deletion of previous rows from target tables + */ + echo '
+

' . $strTableDeleteRows . '

+
+
' . "\n"; + echo ''; + echo '' + . "\n" . '
' . "\n"; + echo '
'; + } + } +} + + /** + * Display the page when 'Apply Selected Changes' is pressed + */ +if (isset($_REQUEST['Table_ids'])) { + /** + * Displays success message + */ + echo '
Selected target tables have been synchronized with source tables.
'; + + $src_db = $_SESSION['src_db']; + $trg_db = $_SESSION['trg_db']; + $update_array = $_SESSION['update_array']; + $insert_array = $_SESSION['insert_array']; + $src_username = $_SESSION['src_username']; + $trg_username = $_SESSION['trg_username']; + $src_password = $_SESSION['src_password']; + $trg_password = $_SESSION['trg_password']; + $uncommon_tables = $_SESSION['uncommon_tables']; + $matching_tables = $_SESSION['matching_tables']; + $matching_tables_keys = $_SESSION['matching_tables_keys']; + $matching_tables_fields = $_SESSION['matching_fields']; + $source_tables_uncommon = $_SESSION['src_uncommon_tables']; + $uncommon_tables_fields = $_SESSION['uncommon_tables_fields']; + $target_tables_uncommon = $_SESSION['target_tables_uncommon']; + $row_count = $_SESSION['uncommon_tables_row_count']; + $target_tables = $_SESSION['target_tables']; + + $delete_array = $_SESSION['delete_array']; + $uncommon_columns = $_SESSION['uncommon_columns']; + $source_columns = $_SESSION['source_columns']; + $alter_str_array = $_SESSION['alter_str_array']; + $criteria = $_SESSION['criteria']; + $target_tables_keys = $_SESSION['target_tables_keys']; + $add_column_array = $_SESSION['add_column_array']; + $add_indexes_array = $_SESSION['add_indexes_array']; + $alter_indexes_array = $_SESSION['alter_indexes_array']; + $remove_indexes_array = $_SESSION['remove_indexes_array']; + $source_indexes = $_SESSION['source_indexes']; + $target_indexes = $_SESSION['target_indexes']; + $uncommon_cols = $uncommon_columns; + + /** + * Creating link object for source and target databases + */ + $src_link = PMA_DBI_connect($src_username, $src_password, $is_controluser = false); + $trg_link = PMA_DBI_connect($trg_username, $trg_password, $is_controluser = false); + + /** + * Initializing arrays to save the table ids whose data and structure difference is to be applied + */ + $matching_table_data_diff = array(); //stores id of matching table having data difference + $matching_table_structure_diff = array(); //stores id of matching tables having structure difference + $uncommon_table_structure_diff = array(); //stores id of uncommon tables having structure difference + $uncommon_table_data_diff = array(); //stores id of uncommon tables having data difference + + for ($i=0; isset($_REQUEST[$i]); $i++ ) + { + if (isset($_REQUEST[$i])) { + $table_id = split("US", $_REQUEST[$i]); + if (isset($table_id[1])) { + $uncommon_table_structure_diff[] = $table_id[1]; + } + $table_id = split("UD", $_REQUEST[$i]); + if (isset($table_id[1])) { + $uncommon_table_data_diff[] = $table_id[1]; + } + $table_id = split("MS", $_REQUEST[$i]); + if (isset($table_id[1])) { + $matching_table_structure_diff[] = $table_id[1]; + } + + $table_id = split("MD", $_REQUEST[$i]); + if (isset($table_id[1])) { + $matching_table_data_diff[] = $table_id[1]; + } + } + } + /** + * Applying the structure difference on selected matching tables + */ + for($q=0 ; $q < sizeof($matching_table_structure_diff); $q++) + { + if (isset($alter_str_array[$matching_table_structure_diff[$q]])) { + + PMA_alterTargetTableStructure($trg_db, $trg_link, $matching_tables, $source_columns, $alter_str_array, $matching_tables_fields, + $criteria, $matching_tables_keys, $target_tables_keys, $matching_table_structure_diff[$q], false); + + unset($alter_str_array[$matching_table_structure_diff[$q]]); + } + if (isset($add_column_array[$matching_table_structure_diff[$q]])) { + + PMA_findDeleteRowsFromTargetTables($delete_array, $matching_tables, $matching_table_structure_diff[$q], $target_tables_keys, + $matching_tables_keys, $trg_db, $trg_link, $src_db, $src_link); + + if (isset($delete_array[$matching_table_structure_diff[$q]])) { + + PMA_deleteFromTargetTable($trg_db, $trg_link, $matching_tables, $matching_table_structure_diff[$q], $target_tables_keys, $delete_array, false); + + unset($delete_array[$matching_table_structure_diff[$q]]); + } + PMA_addColumnsInTargetTable($src_db, $trg_db,$src_link, $trg_link, $matching_tables, $source_columns, $add_column_array, $matching_tables_fields, + $criteria, $matching_tables_keys, $target_tables_keys, $uncommon_tables,$uncommon_tables_fields, $matching_table_structure_diff[$q], $uncommon_cols, false); + + unset($add_column_array[$matching_table_structure_diff[$q]]); + } + if (isset($uncommon_columns[$matching_table_structure_diff[$q]])) { + + PMA_removeColumnsFromTargetTable($trg_db, $trg_link, $matching_tables, $uncommon_columns, $matching_table_structure_diff[$q], false); + + unset($uncommon_columns[$matching_table_structure_diff[$q]]); + } + if (isset($add_indexes_array[$matching_table_structure_diff[$q]]) || isset($remove_indexes_array[$matching_table_structure_diff[$q]]) + || isset($alter_indexes_array[$matching_table_structure_diff[$q]])) { + + PMA_applyIndexesDiff ($trg_db, $trg_link, $matching_tables, $source_indexes, $target_indexes, $add_indexes_array, $alter_indexes_array, + $remove_indexes_array, $matching_table_structure_diff[$q], false); + + unset($add_indexes_array[$matching_table_structure_diff[$q]]); + unset($alter_indexes_array[$matching_table_structure_diff[$q]]); + unset($remove_indexes_array[$matching_table_structure_diff[$q]]); + } + } + /** + * Applying the data difference. First checks if structure diff is applied or not. + * If not, then apply structure difference first then apply data difference. + */ + for($p=0; $p < sizeof($matching_table_data_diff); $p++) + { + if ($_REQUEST['checked'] == 'true') { + + PMA_findDeleteRowsFromTargetTables($delete_array, $matching_tables, $matching_table_data_diff[$p], $target_tables_keys, + $matching_tables_keys, $trg_db, $trg_link, $src_db, $src_link); + + if (isset($delete_array[$matching_table_data_diff[$p]])) { + + PMA_deleteFromTargetTable($trg_db, $trg_link, $matching_tables, $matching_table_data_diff[$p], $target_tables_keys, $delete_array, false); + + unset($delete_array[$matching_table_data_diff[$p]]); + } + } + if (isset($alter_str_array[$matching_table_data_diff[$p]])) { + + PMA_alterTargetTableStructure($trg_db, $trg_link, $matching_tables, $source_columns, $alter_str_array, $matching_tables_fields, + $criteria, $matching_tables_keys, $target_tables_keys, $matching_table_data_diff[$p], false); + + unset($alter_str_array[$matching_table_data_diff[$p]]); + } + if (isset($add_column_array[$matching_table_data_diff[$p]])) { + + PMA_findDeleteRowsFromTargetTables($delete_array, $matching_tables, $matching_table_data_diff[$p], $target_tables_keys, + $matching_tables_keys, $trg_db, $trg_link, $src_db, $src_link); + + if (isset($delete_array[$matching_table_data_diff[$p]])) { + + PMA_deleteFromTargetTable($trg_db, $trg_link, $matching_tables, $matching_table_data_diff[$p], $target_tables_keys, $delete_array, false); + + unset($delete_array[$matching_table_data_diff[$p]]); + } + PMA_addColumnsInTargetTable($src_db, $trg_db,$src_link, $trg_link, $matching_tables, $source_columns, $add_column_array, $matching_tables_fields, + criteria, $matching_tables_keys, $target_tables_keys, $uncommon_tables, $uncommon_tables_fields, $matching_table_data_diff[$p], $uncommon_cols, false); + + unset($add_column_array[$matching_table_data_diff[$p]]); + } + if (isset($uncommon_columns[$matching_table_data_diff[$p]])) { + + PMA_removeColumnsFromTargetTable($trg_db, $trg_link, $matching_tables, $uncommon_columns, $matching_table_data_diff[$p], false); + + unset($uncommon_columns[$matching_table_data_diff[$p]]); + } + if (isset($add_indexes_array[$matching_table_structure_diff[$q]]) || isset($remove_indexes_array[$matching_table_structure_diff[$q]]) + || isset($alter_indexes_array[$matching_table_structure_diff[$q]])) { + + PMA_applyIndexesDiff ($trg_db, $trg_link, $matching_tables, $source_indexes, $target_indexes, $add_indexes_array, $alter_indexes_array, + $remove_indexes_array, $matching_table_structure_diff[$q], false); + + unset($add_indexes_array[$matching_table_structure_diff[$q]]); + unset($alter_indexes_array[$matching_table_structure_diff[$q]]); + unset($remove_indexes_array[$matching_table_structure_diff[$q]]); + } + /** + * Applying the data difference. + */ + PMA_updateTargetTables($matching_tables, $update_array, $src_db, $trg_db, $trg_link, $matching_table_data_diff[$p], $matching_tables_keys, false); + + PMA_insertIntoTargetTable($matching_tables, $src_db, $trg_db, $src_link, $trg_link , $matching_tables_fields, $insert_array, + $matching_table_data_diff[$p], $matching_tables_keys, $source_columns, $add_column_array, $criteria, $target_tables_keys, + $uncommon_tables, $uncommon_tables_fields, $uncommon_cols, $alter_str_array, $source_indexes, $target_indexes, $add_indexes_array, + $alter_indexes_array, $delete_array, $update_array, false); + } + /** + * Updating the session variables to the latest values of the arrays. + */ + $_SESSION['delete_array'] = $delete_array; + $_SESSION['uncommon_columns'] = $uncommon_columns; + $_SESSION['alter_str_array'] = $alter_str_array; + $_SESSION['add_column_array'] = $add_column_array; + $_SESSION['add_indexes_array'] = $add_indexes_array; + $_SESSION['remove_indexes_array'] = $remove_indexes_array; + $_SESSION['insert_array'] = $insert_array; + $_SESSION['update_array'] = $update_array; + + /** + * Applying structure difference to selected non-matching tables (present in Source but absent from Target). + */ + for($s=0; $s < sizeof($uncommon_table_structure_diff); $s++) + { + PMA_createTargetTables ($src_db, $trg_db, $src_link, $trg_link, $uncommon_tables, $uncommon_table_structure_diff[$s], $uncommon_tables_fields, false); + $_SESSION['uncommon_tables_fields'] = $uncommon_tables_fields; + + unset($uncommon_tables[$uncommon_table_structure_diff[$s]]); + } + /** + * Applying data difference to selected non-matching tables (present in Source but absent from Target). + * Before data synchronization, structure synchronization is confirmed. + */ + for($r=0; $r < sizeof($uncommon_table_data_diff); $r++) + { + if (!(in_array($uncommon_table_data_diff[$r], $uncommon_table_structure_diff))) { + if (isset($uncommon_tables[$uncommon_table_data_diff[$r]])) { + + PMA_createTargetTables($src_db, $trg_db, $src_link, $trg_link, $uncommon_tables, $uncommon_table_data_diff[$r], $uncommon_tables_fields, false); + $_SESSION['uncommon_tables_fields'] = $uncommon_tables_fields; + + unset($uncommon_tables[$uncommon_table_data_diff[$r]]); + } + } + PMA_populateTargetTables($src_db, $trg_db, $src_link, $trg_link, $source_tables_uncommon, $uncommon_table_data_diff[$r], + $_SESSION['uncommon_tables_fields'], false); + + unset($row_count[$uncommon_table_data_diff[$r]]); + } + /** + * Again all the tables from source and target database are displayed with their differences. + * The differences have been removed from tables that have been synchronized + */ + echo '
' + . PMA_generate_common_hidden_inputs('', ''); + + echo '
'; + + echo ' + + + + '; + $odd_row = false; + for($i = 0; $i < count($matching_tables); $i++) + { + $odd_row = !$odd_row; + echo ' + + + '; + } + /** + * placing updated value of arrays in session + * + */ + $_SESSION['update_array'] = $update_array; + $_SESSION['insert_array'] = $insert_array; + + for ($j = 0; $j < count($source_tables_uncommon); $j++) + { + $odd_row = !$odd_row; + echo ' + + + '; + } + /** + * placing the latest values of arrays in session + */ + + $_SESSION['uncommon_tables'] = $uncommon_tables; + $_SESSION['uncommon_tables_row_count'] = $row_count; + + + /** + * Dispalying the target database tables + */ + foreach ($target_tables_uncommon as $tbl_nc_name) + { + $odd_row = !$odd_row; + echo ' + '; + echo ''; + } + echo '
Source Database: '. $src_db .' Difference
' . $matching_tables[$i]. "\n" . ''; + + $num_alter_cols = 0; + $num_insert_cols = 0; + $num_remove_cols = 0; + $num_add_index = 0; + $num_remove_index = 0; + + if (isset($alter_str_array[$i])) { + $num_alter_cols = sizeof($alter_str_array[$i]); + } + if (isset($add_column_array[$i])) { + $num_insert_cols = sizeof($add_column_array[$i]); + } + if (isset($uncommon_columns[$i])) { + $num_remove_cols = sizeof($uncommon_columns[$i]); + } + if (isset($add_indexes_array[$i])) { + $num_add_index = sizeof($add_indexes_array[$i]); + } + if (isset($remove_indexes_array[$i])) { + $num_remove_index = sizeof($remove_indexes_array[$i]); + } + + if (($num_alter_cols > 0) || ($num_insert_cols > 0) || ($num_remove_cols > 0) || ($num_add_index > 0) ||($num_remove_index > 0)) { + echo 'Click to Select'. "\n" ; + } + if (!(in_array($i, $matching_table_data_diff))) { + + if (isset($update_array[$i][0][$matching_tables_keys[$i][0]])) { + if (isset($update_array[$i])) { + $num_of_updates = sizeof($update_array[$i]); + } else { + $num_of_updates = 0; + } + } else { + $num_of_updates = 0; + } + if (isset($insert_array[$i][0][$matching_tables_keys[$i][0]])) { + if (isset($insert_array[$i])) { + $num_of_insertions = sizeof($insert_array[$i]); + } else { + $num_of_insertions = 0; + } + } else { + $num_of_insertions = 0; + } + + if (isset($update_array[$i][0][$matching_tables_keys[$i][0]]) || isset($insert_array[$i][0][$matching_tables_keys[$i][0]])) { + echo 'Click to Select'; + } + } else { + unset($update_array[$i]); + unset($insert_array[$i]); + } + echo '
+ ' .$source_tables_uncommon[$j]. "\n" . ''; + /** + * Display the difference only when it has not been applied + */ + if (!(in_array($j, $uncommon_table_structure_diff))) { + if (isset($uncommon_tables[$j])) { + echo 'Click to Select' . "\n" .' '; + } + } else { + unset($uncommon_tables[$j]); + } + /** + * Display the difference only when it has not been applied + */ + if (!(in_array($j, $uncommon_table_data_diff))) { + if (isset($row_count[$j]) && ($row_count > 0)) + { + echo 'Click to Select'. "\n"; + } + } else { + unset($row_count[$j]); + } + + echo '
     
'; + echo ' + + + '; + $odd_row = false; + foreach ($matching_tables as $tbl_name) + { + $odd_row = !$odd_row; + echo ' + '; + echo ''; + } + foreach ($source_tables_uncommon as $tbl_nc_name) + { + $odd_row = !$odd_row; + echo ''; + if (in_array($tbl_nc_name, $uncommon_tables)) { + echo ''; + } else { + echo ''; + } + echo ' + '; + } + foreach ($target_tables_uncommon as $tbl_nc_name) + { + $odd_row = !$odd_row; + echo ' + '; + echo ''; + } + echo '
Target Database: ' . $trg_db . '
' .$tbl_name . '
' .$tbl_nc_name . "\n" . '(Not present) ' .$tbl_nc_name . "\n" . '
- ' .$tbl_nc_name . '
+
'; + + /** + * This "list" div will contain a table and each row will depict information about structure/data diffrence in tables. + * Rows will be generated dynamically as soon as the colored buttons "D" or "S" are clicked. + */ + + echo '
'; + + echo ' + + + + + + + + + + + + + + + + + + + +
'. $strTable .' '. $strStructureDiff .' '. $strDataDiff .'
'. $strTableName .''. $strTableCreate .''. $strTableAddColumn .''. $strTableRemoveColumn .''. $strTableAlterColumn .''. $strTableRemoveIndex .''. $strTableApplyIndex .''. $strTableUpdateRow .''. $strTableInsertRow .'
+
'; + + /** + * This fieldset displays the checkbox to confirm deletion of previous rows from target tables + */ + echo '
+

' . $strTableDeleteRows . '

+
'; + + echo '
' . "\n"; + echo ''; + echo '' + . "\n" . '
' . "\n"; + echo '
'; +} + +/** +* Dispalys the page when 'Synchronize Databases' is pressed. +*/ + +if (isset($_REQUEST['synchronize_db'])) { + + $src_db = $_SESSION['src_db']; + $trg_db = $_SESSION['trg_db']; + $update_array = $_SESSION['update_array']; + $insert_array = $_SESSION['insert_array']; + $src_username = $_SESSION['src_username']; + $trg_username = $_SESSION['trg_username']; + $src_password = $_SESSION['src_password']; + $trg_password = $_SESSION['trg_password']; + $matching_tables = $_SESSION['matching_tables']; + $matching_tables_keys = $_SESSION['matching_tables_keys']; + $matching_tables_fields = $_SESSION['matching_fields']; + $source_tables_uncommon = $_SESSION['src_uncommon_tables']; + $uncommon_tables_fields = $_SESSION['uncommon_tables_fields']; + $target_tables_uncommon = $_SESSION['target_tables_uncommon']; + $row_count = $_SESSION['uncommon_tables_row_count']; + $uncommon_tables = $_SESSION['uncommon_tables']; + $target_tables = $_SESSION['target_tables']; + + $delete_array = $_SESSION['delete_array']; + $uncommon_columns = $_SESSION['uncommon_columns']; + $source_columns = $_SESSION['source_columns']; + $alter_str_array = $_SESSION['alter_str_array']; + $criteria = $_SESSION['criteria']; + $target_tables_keys = $_SESSION['target_tables_keys']; + $add_column_array = $_SESSION['add_column_array']; + $add_indexes_array = $_SESSION['add_indexes_array']; + $alter_indexes_array = $_SESSION['alter_indexes_array']; + $remove_indexes_array = $_SESSION['remove_indexes_array']; + $source_indexes = $_SESSION['source_indexes']; + $target_indexes = $_SESSION['target_indexes']; + $uncommon_cols = $uncommon_columns; + + /** + * Display success message. + */ + echo '
Target database has been synchronized with source database.
'; + /** + * Dispalying all the tables of source and target database and now no difference is there. + */ + echo '
'; + + echo ' + + + + '; + $odd_row = false; + for($i = 0; $i < count($matching_tables); $i++) + { + $odd_row = !$odd_row; + echo ' + + + '; + } + for ($j = 0; $j < count($source_tables_uncommon); $j++) + { + $odd_row = !$odd_row; + echo ' + '; + echo ' + '; + } + foreach ($target_tables_uncommon as $tbl_nc_name) + { + $odd_row = !$odd_row; + echo ' + '; + echo ''; + } + echo '
Source Database: '. $src_db .' Difference
' . $matching_tables[$i]. "\n" . '
+ ' .$source_tables_uncommon[$j]. "\n" . '
     
'; + echo ' + + + '; + $odd_row = false; + foreach ($matching_tables as $tbl_name) + { + $odd_row = !$odd_row; + echo ' + '; + echo ''; + } + foreach ($source_tables_uncommon as $tbl_nc_name) + { + $odd_row = !$odd_row; + echo ' + + '; + } + foreach ($target_tables_uncommon as $tbl_nc_name) + { + $odd_row = !$odd_row; + echo ' + '; + echo ''; + } + echo '
Target Database: ' . $trg_db . '
' .$tbl_name . '
' .$tbl_nc_name . "\n" . '
' .$tbl_nc_name . '
'; + + /** + * connecting the source and target servers + */ + $src_link = PMA_DBI_connect($src_username, $src_password, $is_controluser = false); + $trg_link = PMA_DBI_connect($trg_username, $trg_password, $is_controluser = false); + + /** + * Displaying the queries. + */ + echo '
Following queries have been executed:
'; + echo '
'; + /** + * Applying all sorts of differences for each matching table + */ + for($p=0; $p "; +} + +/** + * Displays the main page when none of the following buttons is pressed + */ + + if (!isset($_REQUEST['submit_connect']) && !isset($_REQUEST['synchronize_db']) && !isset($_REQUEST['Table_ids']) ) +{ +/** +* Displays the sub-page heading +*/ + echo '

' . "\n" + . ($GLOBALS['cfg']['MainPageIconic'] + ? '' + : '') + . $strSynchronize . "\n" + .'

' . "\n"; + + echo '
+
' + . PMA_generate_common_hidden_inputs('', ''); + /** + * Displays the form for source server + */ + echo ' + + + + + + + + + + + + + + + + + + +
Source Database
Host:         
Username:
Password:
Port:         
Database:
'; + + /** + * Displays the form for target server + */ + echo ' + + + + + + + + + + + + + + + + + + +
Target Database
Host:         
Username:
Password:
Port:         
Database:
+ +
+ +
+
+
+
' . $strSynchronizationNote . '
'; +} + + /** + * Displays the footer + */ +require_once './libraries/footer.inc.php'; +?> \ No newline at end of file diff --git a/themes/original/img/new_data.jpg b/themes/original/img/new_data.jpg new file mode 100644 index 0000000000000000000000000000000000000000..08d30d34a728e7c558c9fb97b7e34063b4ae1eb4 GIT binary patch literal 1925 zcmex=Bm<7(6|-7&sUh7}yx37+Dz@85kJC z7#J9&q3k#Y1_ljAX0SLDg9L*iBNKxF0|P@E0|NsiGemtE0|NsyGb30H!~g#W7#J8p zR)F~lAax833;~Imc_n&&t|1C##(KtP3=7&A8TvOeF#NyG;LO0p2m&CI2?SV}K_n{+ z3o{EFD;paavvYE=v2(Jsv2k#7aB_hF8wWQJHy00x12TjWq=$)#m6@59i=B-fq=Gd3 z{{Vv^2ZJ($GBcwR1Ct;lvmoRDBMkBk42-NG*D-=Z2IMmaMkZz!RyKAHPA=~MM;NvW zFfcJPGc&O;v$C?VFfcIIGBPnUun4jWDH=Mm2?r*!D;0_uHBMZ}q3pErplHy=4=Tn< zMNOPsV&W2#QmSg|8k$-rre@|AmR8O#u5Rugo?gKrp<&?>kx|JhscGpMnOVgprDf$6 zl~v6xt!?ccon4bAPnkMx`iz;g7A;<~blLJ1D_3pWyk+aQ?K^hvI&}ER(PPI?oIG{u z@|COCuHU$M>*1rvPo6$|{^I4UkDoq&`TFhqkDtFl{$gZchIk8uS~;l_iU%Emz-M3agxa*3&!JXHM%@*3D@ z#CfcVET6$WhVa)d1|DWc1|~sfK?ZwOo_*Qut zudeKWhMDXS`TsK*U#Yun|0#X`hmiW;GwQzv{7Bp9@VD2F^+)ozz90V?mj2QB*tfnu zdHKCtasIaFW^O(guXf9`A@;#~RfZ=erXThs9t-`EEZuY{;Ba;3qoo?hK0onX&a(CC zw0Cu3+k>BNey6Z{a#Fz+&5PeAt+^HVU3XTY_nW;x_pGU{|Iff{{9CU6(#88fC)5f2 zXZUOzJO7~dd4_+N?kVm1(EjG}e+G8$it~@y)+VRq>zC|jd2P>a8r@x8@Tx7n@A_fC zlXBl(?>R`8N}d$`1{C?f;$q&v5iV!>^hTODkrocS@|e-eIsaH%25; z>Q$bpa%4#FLP_&%$Jl!|Yt3fueY^F~o88^39~VbiSU$WG8mhKzmFD_Vvu|Cm)?B?D zJ%4fh2mkqUe>{J*|F$?^`!W3y@B6N=YlR=>_w6zHr*!4bnz!%Pzb)w(d-W@H$>!s! zEMkv>bJN*Aiv%vVNaNUfRCM-#2A0eJ877y0l>a-2{b>K+h&shZ`$O$+{QS@GZRUT5 z$u|EPnil_OxO4bF!>abfrk}WDcVtGL>c{6@IVQ12w$?#ix$eO`1)Zfm zQ;pP~+3;*;{A&8`TlWV;`^>-M-+up{mGaT@qWB~ABa(lNZe7^?+jE2Xe+KS9>e=7= zwW}(3+uZ$azV7XgJ3CMOeEd)GKf~V@^)D6e82>XIso(pb;n}SH`XAZbKL2@ce7bOF zin4m!lx0_zo|?VaT=etPay#R$O+DugjwO7QuvlqjRFt{9v^oBlw~?J()E}k4opn-w zT(3X>ySPUAalXKh{Rg+p$zJ#p&+e~!YT*tAo6jC67BaD(!8KSPu8e}+@R zCI1 zhVU~5+gS?z;*Uzm_$jqoMdVnmn38O+{{C2b?(S`Omh4uUcK1)t^mgMlYQ=49!{#Kq zO`6x`yT8ildTey=`iXDiKls}JG>;ej&v5fVO~ikOtL=}ZH2yO*W&US4x$8&&zjMrw zj{jR@FK{t__xxp2a#sHtnyTu~{B{y6_*7MEi;Hd6eLC?b%K5ybt4IL*|C<0&uR`zu literal 0 HcmV?d00001 diff --git a/themes/original/img/new_data_hovered.jpg b/themes/original/img/new_data_hovered.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c385872addae2d7e33f78a2ef7d19f1cb5726118 GIT binary patch literal 1558 zcmex=Bm<7(6|-7&sUh7}yx37+Dz@85kJC z7#J9&q3k#Y1_ljAX0SLD10$m$BNKxF0|P@E0|NsiGemtE0|NsyGb30H10!Q20|Nud z3NSwbq>h1sAs{g`uSCz!HAJDzSkKsuVL=-sL;pqwhX1!2oEexHK>$QDfdC6Lh-779 zVP;`tWn%+lc1{j9c20ISHV$qMPA(8&xo=LsQGd)Xdz%(#qMz)y>_*(pm6Pt3F{jRMU`d%)dXiaf%l?N;>ofO1`a5qAm+kqZ()a%bg>&ZA zKNhi1IsA5U@_z=7vwr)o{O$jzSTX$}|C`#6(;wwGKHc6NdD)bgQD>c=&f*zvsyi$0 zvPkCCp(5wCG;?R3@(%vmr`~GfGf5Z9BdycctIn3?m zWl(bGcH!<_&+=Ej6n>WY+w0%u+W2o(AJiXy^!vR2AE&nYqx56-0)JBfcJ8y&@7^Pt zzA$T^)Q4?*m)wtfdF%B3+b51Y_I*t03vXgmSb9s7&9Kewm>cJ>^^f0eO#SUtcjT7* zTm47(c{9W6j4toVRcl_6wJUZ}^nZq|=owK7sU8P{9&UTQ&TON^9fu#QUfX{-CBJoA zt!e*XXOms)IrsQK&eMAIYiC$~)Z7@G4VPAntvtpbvbJv3^{k^QmgmxY&fb&Tb7jHH zl}A^6+8Y%e`^A2VyiRrfeUso7>;3Q9efgK4+y5u2{msk?l~VTkzb2b{{qp}-^>^7G z!w>ln-*?+dR6KrgcY9Asz1Z1Q-M356ZC0HTwk@sXnMqPz(()C*_r8AI-xB{JApVD% z?fW-tKfHf%{w@3CSmCgpAMUqo>5lbwxxRc92+A4mA^ z!Vm8c*L=7CuuT0w!_(5RAAA2Zu(JMVXiC0Wcj~@i9nZh>b!Hb!X3rP;;T^v1a)~ed zf%025=25LjyAMiQZ1y<3^V5~x0tRdz%$*;8AF`@pK4Q`HU3B(gLCwIqcA;|7ao4tc qYv<_9Zr6Icvu9(ecJZmer&}j^oz2bnR;l;f66jhOE1y>X|0Vz%ns`9~ literal 0 HcmV?d00001 diff --git a/themes/original/img/new_data_selected.jpg b/themes/original/img/new_data_selected.jpg new file mode 100644 index 0000000000000000000000000000000000000000..caabf6767e4d91f9a5f2bae2683e0544d495546b GIT binary patch literal 1450 zcmex=Bm<7(6|-7&sUh7}yx37+Dz@85kJC z7#J9&q3k#Y1_ljAX0SLD17o8hBNKxF0|P@E0|NsiGemtE0|NsyGb30H10!Q20|Nud z3NSwbq>h1sAs{g`uSCz!HAJDzSkKsuVL=-sL;pqwhX1!2oEexHK>$QDfdC6Lh-779 zVP;`tWn%+lc1{j9c20ISHV$qMPA(8&xo=LsQGd)Xdz%(#qMz)y>_*(cx{ zk8Ve1oRAKe{HJ_9!_@y<;Q2q6!T-1f=le_kXLz;kqUObaI^nba9K7?l_|x(2e?Plg zb{7L=WI{S}H{eP(MzkG21ueDouo%uVf&bo&8gZaVxGJhm~yneV|_=+?t3F{ayMs z>>o}a7PGqFYLosUJ^b3+lDBEcJ-RL>E&Q@`L8fxDO;W~brZu-CR;Rr9&v5um{e$!T zzXbL%{bzWj6<7bMZzE+xMuPiW`SJ3%&c7r3#cGrv zcE6XaG5ToR*ZI(%tw!paiFd4f)V@oqTUs{w8cB$GN}uRCs~Etv?itrkRvj}fQIX|r WleWA6bAGn-H>;~ixb4OC|2F}n);)Rv literal 0 HcmV?d00001 diff --git a/themes/original/img/new_data_selected_hovered.jpg b/themes/original/img/new_data_selected_hovered.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a34ba219448fe3997b4f13dfa10cbf0adf79064a GIT binary patch literal 1456 zcmex=Bm<7(6|-7&sUh7}yx37+Dz@85kJC z7#J9&q3k#Y1_ljAX0SLD0|SF0BNKxF0|P@E0|NsiGemtE0|NsyGb30H1OEpG5J&*Y zGcbUx0*ePEX6BXX`MHKDlo{(8n=veCV`S*x$iVRbHiI(*6C((KNG1?qVFr<`EG*0{ zY^-c-V9d_R!N$(X&c?>U&B4h90&E=IJltG7AP&e7MvxvRCRS!d!pzFb!otA7Sj))7%)lbZDx_%W$R-?^$gWfnAuRebI{N?Mn?>~P20{M%Pff?d0P?EsrFF^(-MkY`ku!H=? z$W#vUxF8Fwq9L1*V<3BCp|FxsBZr97#DyCVaw;1KeGpA5y2vG_V)9V+BgkuDpAqM= zCbE16_ZY%ow-|Vs85x)anFSf_84mo2{n&rRp2I$AeM7(x=YwHU?^Zsl=gx@o?OnHY zt!?X`91}@>DfgMW&l8v;cQq(mrpHV$ay$OVME$Mv{cklN#Q({9-~SgB&bUP8-)Z?x zf!{9Kf91KV{Vx8-??>jH|M=^U@0YAouaJDJc&+5F|KZo^#pTP77AOnd@s#e}v|3;5 zNXh!^7TddjG^?L^*mm&RlcweDc@efz?;hQ3QCPC>{51BroWBFU|DA8c{G%ph?|+7; zswp*rKaM|=@BYuQG5q+6n)nB+b-6=6oNwKFSMAqzziadU-3zngDeqP(w%xv$yMrt;}4LG{cWe z>&3r*n~iV(Gt^x4TeM&8d++(@>>l3LrQ~%MSWYr9NV6G iM(eDmOlrA0W$M?s9947EZ28MuMFQjd?#inFzX<^7I5d?2 literal 0 HcmV?d00001 diff --git a/themes/original/img/new_struct.jpg b/themes/original/img/new_struct.jpg new file mode 100644 index 0000000000000000000000000000000000000000..283a5e9698bcb4adc5853bc8dab3871770b5e155 GIT binary patch literal 1118 zcmeAS@N?(olHy`uVBq!ia0y~yU{D5O4rT@h22FP7Yz77f#^NA%Cx&(BWL`2bFtDUM z`Z_W&Z0zU$lgP@zz@U)q5#-CjP^HGe(9pub@QZa@a2CEqi4B`cI zb_LonFfcO&_=LDJFfa%R2pAX`{AW=6FKPW>&F#N&;D3jh|9%<&V@m#KH~z2c{og(3 z|D09-*X{a$`1Jo<_y7O@&oBx`Ltt2hK&ks1P(G3zRiA%bp8xbEf^|+*o$vK=gUnm{*F)muK=!TYa-(`ni_6 z_Pbj?ElZl2xwSY}?a8y78@Bw(;Qw11_H}Aq8oPR3+r)D->b`B<@{RrQSEFF5q-$?L Ok>u&>=d#Wzp$PzVkft60 literal 0 HcmV?d00001 diff --git a/themes/original/img/new_struct_hovered.jpg b/themes/original/img/new_struct_hovered.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7a7c70442f812335dd7616865719b1970414f63c GIT binary patch literal 1643 zcmex=Bm<7(6|-7&sUh7}yx37+Dz@85kJC z7#J9&q3k#Y1_ljAX0SLD17o8hBNKxF0|P@E0|NsiGemtE0|NsyGb30H10!Q20|Nud z3NSwbq>h1sAs{g`uSCz!HAJDzSkKsuVL=-sL;pqwhX1!2oEexHK>$QDfdC6Lh-779 zVP;`tWn%+lc1{j9c20ISHV$qMPA(8&xo=LsQGd)Xdz%(#qMz)y>_*(E-Z-!u2tT%GuzfxG=1!+(Y)QT0!oAIksp zU;LQ=&kXiATmLf@@c(rwmHMUqk2Czkhxgm|>Bbsm ziVK*1+gZ{hu=yNQk9NtSPYY*Uzg@UoI_;0;ynxdiL{@yVGI{#`vhUsHwR!8SGj`9v zEGJUocwkTX!!qNp&o>|Ke34Y!ugiI3sf0|)w^h$G8i9_aFukE+`&v5AB z-v;}aV)K6{{BZxzF!^=-(Kyk+-FAj`N9T+G)B2cFTSr4Tyi`9 z<@FCQmELJCns(vTs)OlGE+vzTwlCJL%KsxO{qWQe=A-wx|K0i9xBp?lk6E7`CjS%4 zD9KdJWsjPx!nHlBe6mW%>gLZ25<+Y$W9FWHT+hD$$pQPU_}~5i8D1$b4|*`q{Opg( zHtVM+zYKg5lI4AO>8W>k#_N!7-+;?mRAVXYBGpRVN| z3sG3CeQMIvNwfX*BbG1vH#cKZ*N??N8~!EjGx*PNvZ3yD{C9@`3|HI(*B$>B{o~

$~bW{$2ggz^re&Ry}T>^jYm=b^=|O>;*Ee8$J-}i*CL3!Gd9m4uj$jyTs%9 zAFLm^ANtR5i~XDM5B-PrUAsijeqA>Afj|E%G5h3edT&yjo@8osOibN6&654yv#B0; zn`E9yZT-){_vr7W{V#$)`u~%8FYuq?Q)%7IV{+o@cOqv6p4m{k(#`JJoLsx?7jwS^ zX5IR3zvPeN$MbD_>>ud3^F6Dux*F@_yl%PMqGgYMW@_9D5AyYzdf#onwy)WI{ofh? zZpd@j8PzEM$o_5ohv`For_LVH59e-u{%s%paqXXQtF3>o>#h0yXU!7Bb$4_!${zGF zgfgG4VI0T`cwEr@WcLZb$?s_ znN-9-3~Mb;&Rp?B_=r^N_uHo3yI-d7wDNXJ$;?|i$@%w=qyX~-773>L92N0LWHe`8 zJM(etNNyYld`J5k*xBtkKJh?$ML#tx`8q1Is%bsd#om-q= bu6b_rBm<7(6|-7&sUh7}yx37+Dz@85kJC z7#J9&q3k#Y1_ljAX0SLD0|SF0BNKxF0|P@E0|NsiGemtE0|NsyGb30H!~g#c3=9k) zE5Q5&kU9nihJeJ(yb?V>*ARs=V?ARth6Qbm4E-A!82;a8aAsg)1OX7q1OhC~Ad;1Z zg_(tom5mLI**Q7b*g4tR*f_X3IJrQ8jf0zqn~Mj;0U5#w(!<2W%FN8l#m>eKQb8L2 ze}F-dgF&7_k(p76fk}{&S&;Gn5e9h%21Ztp>li^H1M(RIBNHEDnVDFaSy@?F7#J998JUwh=DOELf4NWZ*Q!{f5ODks=S2uSLPp{yR(6I1`$f)F$)U@=B%&g*)(z5c3 z%Btp;*0%PJ&aO$5r%atTea6gLixw|gx@`H1m8&*w-m-Pu_8mKS9XfpE=&|D`PM*4S z`O4L6*Kgds_3+W-Cr_U}fAR9w$4{TXeEs(Q$Io9Ne=#yJL%an_64?AD$iT$N1d0Q8 zkiQt2%0V6%WMNe_WD{}>WKS#c@69{ z;yl(wme1fGL-^|!0}nGJ1Ct=LAcH-_@5=|{x5szXC(Qq$Z2qSFaXiN#nN1&$t$eKC zzK`p})xPN~eysdbT_N$qDb{s)b<37rIV_jwGIjJtxtz2lZL^>K}B~fABAU`{4ZFuv>S7{x;gwerP@*FZ6Zx{mxrkr}eIgeIXQG z;eX`UygvQ6Te82Ga9ba$c;SDpf>~jL#8uyQWnQ~&^}&XJ|Ig4=_k;aE1OMOm{~3%! zZ~nOc?e$0gx9|Tmu%!Ln@F)Axe}?9;I`*qJvLC)5+b6Z}(wFz5W*hUZ`8ixytoeAy zcIo1TWs5pOju>3rt|Ay${JS{wKZB_0{3bcckLA7kHiD05Yu8p)N9T9l6WGyzb|+8I zp;ON^E;0!=xtTLQecW{4T=TbP`ahYK{~1`>&oA%!&+s)mW6Hyiim!{moUdj^5?IZ>}zJH^x@r- zHxuub!Flpu z6l+-jGaL!o^Pl0VY^IK#;>oRSSAQGn^~FDW{?>ERkNppM_aE?Ysb|lr;eY6I&2ROJ zDCgC_wS~3i8y0Pue2VdwID?*jYvp6ni~mm9e`>Y=q2X@-#qvMHt8Evx;(t`O|B-w+ z_x^{5Kdk51|1p~T{6B-nYx{4r|1&h*s6V)Gm;N8&>5rGc+4x(iCgMYXoBp2452ufO zvr=#QBl#ga{Gx8DZq{#)X_tf!n(Ro3RLNH|HfdoHEjI{#6w2e0GH1c1FR5yE2QIpb JnoIt_2>@IoHqQV6 literal 0 HcmV?d00001 diff --git a/themes/original/img/new_struct_selected_hovered.jpg b/themes/original/img/new_struct_selected_hovered.jpg new file mode 100644 index 0000000000000000000000000000000000000000..77a53715d4df5bb38d5bff0d8a2edc990a7eeb06 GIT binary patch literal 1463 zcmex=Bm<7(6|-7&sUh7}yx37+Dz@85kJC z7#J9&q3k#Y1_ljAX0SLD17o8hBNKxF0|P@E0|NsiGemtE0|NsyGb30H10!Q20|Nud z3NSwbq>h1sAs{g`uSCz!HAJDzSkKsuVL=-sL;pqwhX1!2oEexHK>$QDfdC6Lh-779 zVP;`tWn%+lc1{j9c20ISHV$qMPA(8&xo=LsQGd)Xdz%(#qMz)y>_*(uEZoBO-ci6l~ zy|3lZ^9CbM#@@P}NB6`Zk+e(aG2`2=B5Gk>bnw;naAv~Fs(tkjr`2c2{L1>z@T)Deq@Z8Ckgss&dETD2=h^-8?rex! zx@==tqJ_rl#lLJm9pC=&zS4{ zKyKxl=(|7c4j-8(_fc(DPL1osyPh|d_jFHMn&LmpJSdvS_^`ooh5mj!!T$^g9qS*= zxW0eW{=@s5?YGGHZt;zKemG9>lI~Vn;rI`t-xl&NTbP?P!L#97zGR7A61$Td=Rt+f z+5e>8|KkY%&*1d_aQz=+bNN5(*5BCC-e$1Jv8T;wn$?ux7STCV-%X!vx!9aFTRyWU z=I=@qfAK$x+kS9<=zs9EzwwX8tb?Tfm) z|H-xb?6~?D`u`bLq)m^R{>SwCAA$AO`ya~w$e$noBiQ&q!>3)VYU2JgG&TKaIB59h zKSOGM$9}f@^z+ggvs}-2)+n#Ooq0>G`GNIYJL$bn&rUw*x6Zj_@a|sJ^ddHflMDp~ q{~355T2xEgq{ftLs&cN@)PA++hF4zJHT&gR8jJSJ?y~a#e-i)(D>97$ literal 0 HcmV?d00001 diff --git a/themes/original/img/s_sync.png b/themes/original/img/s_sync.png new file mode 100644 index 0000000000000000000000000000000000000000..61e6b838ec2008fd6654f6a503801a5af2ac69dd GIT binary patch literal 1420 zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qU=ZbCVqjo6>(qIOfq{XsILO_JVcj{ImkbOH zEa{HEjtmSN`?>!lvNA9*C?tCX`7$t6sWC7#v@kIIVqjosc)`F>YQVtoDuIE)Y6b&? zc)^@qfi?^b3=$=-5hcO-X(i=}MX3w{iJ5sNdVa1U3T4K6#%3#@KT>62V0q^0;uvD# zzjVrP{}6YXqxyOsx22?`oqw6+_Nx6$@VUIjck(Q|pj#_^dE8z%-@4YN8o02F%av6` zg#{;O>uP9sDQw`@)7i8qC!*OxjxVS6+NG9 zTzpPao*}_N&B#aMjN(O{GgEhgHspy;) z%f8w}W(KCmIlDQS_P8jvs2lWq9yhN3zGm%dy*ryfylUs0+S#2or!Q;su`NBvxB1%4 z_?V>sPHtPq+?uH40pDL3b1DY0sC{W>u+lyED)9HlO|#Z^PA}8cUX<-FJS)KC>z!}A zTF+}Azb^Lm81JpU+XV<1KpGFxqp3YEpD{V z=SIvC#s?}g$HEwQtYi;L`#TnJSt#gq zH2a_Fc86pbN);r8x-_QPfLcjQge(sEuG9P!QM94-i zeLHJ{z(&*Xki)k+tfvdlD!w$k>(#N_$6H=T*43S|G-sZ0*Sxweh9_&w{)KNQrkCpZ z=EpC4krK4KHb^RbzRsSzUtOHmguku*|LUIU(cN}hH@~NzY>eeyuGDk#rt;EL*H%5- z*~)9k%9v>t`K+NnYrf9f)9P0h{EZAf`6XRnpPKx%^sc|^5$o35_gCHg`R?po`D^cg zK6f@=ajR~V#iL!68GX4jcpTlYn=W&>@-x=Stp?}*fS$k%OCHj0&>o7|yYA2DS@>9wb& z9TGMYF${c78$IqctSnSI$i$!LbVq4X1!v(xRlPMouOE1&+qJOxXPd=V!(W>eKkZxl zs%rNy%URDewz7Qql;G^wUA*kzg^ap?Ew}nJB@CBIsk%(j`*{4?iSS@M-c>xB?>s}L z7yXmzIBBYSt#7KBndrAOHnZ4GxZ{j1&ShQ=d}V*k)|lz8|L5=eNwvr3m2%#0QYt$x zuAY1LuVSi2+|5E0_j0A}Pkr|O%-Zk0-f-%buVG=nueZ;!kICEf`rw)^Gu;BREIqUq zz23Zkzr?>S`5q5`F1eRI`x2A>E9EQCSgtzES@nO!jSy z6Uq-*5-e}!-a7MN;D&b4_Lv5j#)jGd8kRM#eS7_QoVVSi(nmk08c$#S$!Bss_Z6X6 p+=8wzYbTu2Ogyou>%ZkcM(q~n%D1`#{R|8Y44$rjF6*2UngEdfn|%NP literal 0 HcmV?d00001