Repository files navigation

META

META is a toolbox for managing research data in MySQL databases. It comprises of four command line tools performing different tasks. The toolbox is cross-platform and can be built on Windows, Linux and Mac.

The Toolbox

InitMETA

InitMETA initializes META's dictionary tables in a MySQL schema and generates the audit script files for both MySQL and snapshot file (SQLite).

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be initialized
  • u - User who has complete access to the schema
  • p - Password of the user
  • c - Create the dictionary tables. This will delete previous data including any audit records
  • d - Delete previous data
  • l - Load the dictionary data
  • v - Include views in the dictionary data
  • a - Target directory for the audit log script files
Example
$ ./initmeta -u my_user -p my_pass -s my_schema -c -l -u ./my_audit_directory

MySQLToFile

MySQLToFile converts a MySQL schema (with META's dictionary tables) into common human-readable formats like STATA, SPSS and CSV and interoperable formats like XML, JSON and SQL.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • t - Table to be converted if only one table export is needed
  • d - Target directory for the export
  • o - Output format. For example STATA, SPSS, CSV, SQL, XML or JSON
  • n - Value to be used in case of NULL. Default is 0 (zero)
  • T - Include protected fields. In META you can define fields that contain sensitive data. By default MySQLToFile excludes such fields.
Example
$ ./mysqltofile -u my_user -p my_pass -s my_schema -d ./my_target_directory -o STATA -n ""

GenSnapshot

GenSnapshot converts a MySQL schema (with META's dictionary tables) into an SQLite database (snapshot file) for offline cleaning. The snapshot file records any changes in the data that could be synchronized against the MySQL server using MySQLSync later on.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • a - Input SQLite audit file created by InitMETA
  • o - Target SQLite file
Example
$ ./gensnapshot -u my_user -p my_pass -s my_schema -a ./path_to_my_audit_file.sql -o my_snapshot_file.sqlite

MySQLSync

MySQLSync synchronizes the changes made in a snapshot file against the data in the MySQL server. It generates two files 1) an output file with warnings and errors occurring during the synchronization in CSV format, and 2) a script file containing any INSERT, DELETE or UPDATE performed in the server.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • S - Input SQLite snapshot file
  • l - Output log file
  • o - Output SQL script file
Example
$ ./mysqlsync -u my_user -p my_pass -s my_schema -S my_snapshot_file.sqlite -l path_to_my_log_file.CSV -o path_to_my_script_file.sql

Technology

META was built using:

  • C++, a general-purpose programming language.
  • Qt 5, a cross-platform application framework.
  • TClap, a small, flexible library that provides a simple interface for defining and accessing command line arguments.

Building and testing

To build this project:

$ sudo apt install qt5-qmake qtbase5-dev libqt5sql5-mysql
$ git clone https://github.com/ilri/meta.git
$ cd meta
$ qtchooser -run-tool=qmake -qt=5
$ make

This was tested on Ubuntu 18.04.

Author

Carlos Quiros (c.f.quiros_at_cgiar.org / cquiros_at_qlands.com)

License

This repository contains the code of:

Otherwise, the contents of this application is GPLv3.

About

A toolbox for managing research data in MySQL databases

Topics

Resources

Stars

1 star

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

META

META is a toolbox for managing research data in MySQL databases. It comprises of four command line tools performing different tasks. The toolbox is cross-platform and can be built on Windows, Linux and Mac.

The Toolbox

InitMETA

InitMETA initializes META's dictionary tables in a MySQL schema and generates the audit script files for both MySQL and snapshot file (SQLite).

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be initialized
  • u - User who has complete access to the schema
  • p - Password of the user
  • c - Create the dictionary tables. This will delete previous data including any audit records
  • d - Delete previous data
  • l - Load the dictionary data
  • v - Include views in the dictionary data
  • a - Target directory for the audit log script files
Example
$ ./initmeta -u my_user -p my_pass -s my_schema -c -l -u ./my_audit_directory

MySQLToFile

MySQLToFile converts a MySQL schema (with META's dictionary tables) into common human-readable formats like STATA, SPSS and CSV and interoperable formats like XML, JSON and SQL.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • t - Table to be converted if only one table export is needed
  • d - Target directory for the export
  • o - Output format. For example STATA, SPSS, CSV, SQL, XML or JSON
  • n - Value to be used in case of NULL. Default is 0 (zero)
  • T - Include protected fields. In META you can define fields that contain sensitive data. By default MySQLToFile excludes such fields.
Example
$ ./mysqltofile -u my_user -p my_pass -s my_schema -d ./my_target_directory -o STATA -n ""

GenSnapshot

GenSnapshot converts a MySQL schema (with META's dictionary tables) into an SQLite database (snapshot file) for offline cleaning. The snapshot file records any changes in the data that could be synchronized against the MySQL server using MySQLSync later on.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • a - Input SQLite audit file created by InitMETA
  • o - Target SQLite file
Example
$ ./gensnapshot -u my_user -p my_pass -s my_schema -a ./path_to_my_audit_file.sql -o my_snapshot_file.sqlite

MySQLSync

MySQLSync synchronizes the changes made in a snapshot file against the data in the MySQL server. It generates two files 1) an output file with warnings and errors occurring during the synchronization in CSV format, and 2) a script file containing any INSERT, DELETE or UPDATE performed in the server.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • S - Input SQLite snapshot file
  • l - Output log file
  • o - Output SQL script file
Example
$ ./mysqlsync -u my_user -p my_pass -s my_schema -S my_snapshot_file.sqlite -l path_to_my_log_file.CSV -o path_to_my_script_file.sql

Technology

META was built using:

  • C++, a general-purpose programming language.
  • Qt 5, a cross-platform application framework.
  • TClap, a small, flexible library that provides a simple interface for defining and accessing command line arguments.

Building and testing

To build this project:

$ sudo apt install qt5-qmake qtbase5-dev libqt5sql5-mysql
$ git clone https://github.com/ilri/meta.git
$ cd meta
$ qtchooser -run-tool=qmake -qt=5
$ make

This was tested on Ubuntu 18.04.

Author

Carlos Quiros (c.f.quiros_at_cgiar.org / cquiros_at_qlands.com)

License

This repository contains the code of:

Otherwise, the contents of this application is GPLv3.

About

A toolbox for managing research data in MySQL databases

Topics

Resources

Stars

1 star

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

META

META is a toolbox for managing research data in MySQL databases. It comprises of four command line tools performing different tasks. The toolbox is cross-platform and can be built on Windows, Linux and Mac.

The Toolbox

InitMETA

InitMETA initializes META's dictionary tables in a MySQL schema and generates the audit script files for both MySQL and snapshot file (SQLite).

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be initialized
  • u - User who has complete access to the schema
  • p - Password of the user
  • c - Create the dictionary tables. This will delete previous data including any audit records
  • d - Delete previous data
  • l - Load the dictionary data
  • v - Include views in the dictionary data
  • a - Target directory for the audit log script files
Example
$ ./initmeta -u my_user -p my_pass -s my_schema -c -l -u ./my_audit_directory

MySQLToFile

MySQLToFile converts a MySQL schema (with META's dictionary tables) into common human-readable formats like STATA, SPSS and CSV and interoperable formats like XML, JSON and SQL.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • t - Table to be converted if only one table export is needed
  • d - Target directory for the export
  • o - Output format. For example STATA, SPSS, CSV, SQL, XML or JSON
  • n - Value to be used in case of NULL. Default is 0 (zero)
  • T - Include protected fields. In META you can define fields that contain sensitive data. By default MySQLToFile excludes such fields.
Example
$ ./mysqltofile -u my_user -p my_pass -s my_schema -d ./my_target_directory -o STATA -n ""

GenSnapshot

GenSnapshot converts a MySQL schema (with META's dictionary tables) into an SQLite database (snapshot file) for offline cleaning. The snapshot file records any changes in the data that could be synchronized against the MySQL server using MySQLSync later on.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • a - Input SQLite audit file created by InitMETA
  • o - Target SQLite file
Example
$ ./gensnapshot -u my_user -p my_pass -s my_schema -a ./path_to_my_audit_file.sql -o my_snapshot_file.sqlite

MySQLSync

MySQLSync synchronizes the changes made in a snapshot file against the data in the MySQL server. It generates two files 1) an output file with warnings and errors occurring during the synchronization in CSV format, and 2) a script file containing any INSERT, DELETE or UPDATE performed in the server.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • S - Input SQLite snapshot file
  • l - Output log file
  • o - Output SQL script file
Example
$ ./mysqlsync -u my_user -p my_pass -s my_schema -S my_snapshot_file.sqlite -l path_to_my_log_file.CSV -o path_to_my_script_file.sql

Technology

META was built using:

  • C++, a general-purpose programming language.
  • Qt 5, a cross-platform application framework.
  • TClap, a small, flexible library that provides a simple interface for defining and accessing command line arguments.

Building and testing

To build this project:

$ sudo apt install qt5-qmake qtbase5-dev libqt5sql5-mysql
$ git clone https://github.com/ilri/meta.git
$ cd meta
$ qtchooser -run-tool=qmake -qt=5
$ make

This was tested on Ubuntu 18.04.

Author

Carlos Quiros (c.f.quiros_at_cgiar.org / cquiros_at_qlands.com)

License

This repository contains the code of:

Otherwise, the contents of this application is GPLv3.

About

A toolbox for managing research data in MySQL databases

Topics

Resources

Stars

1 star

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

META

META is a toolbox for managing research data in MySQL databases. It comprises of four command line tools performing different tasks. The toolbox is cross-platform and can be built on Windows, Linux and Mac.

The Toolbox

InitMETA

InitMETA initializes META's dictionary tables in a MySQL schema and generates the audit script files for both MySQL and snapshot file (SQLite).

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be initialized
  • u - User who has complete access to the schema
  • p - Password of the user
  • c - Create the dictionary tables. This will delete previous data including any audit records
  • d - Delete previous data
  • l - Load the dictionary data
  • v - Include views in the dictionary data
  • a - Target directory for the audit log script files
Example
$ ./initmeta -u my_user -p my_pass -s my_schema -c -l -u ./my_audit_directory

MySQLToFile

MySQLToFile converts a MySQL schema (with META's dictionary tables) into common human-readable formats like STATA, SPSS and CSV and interoperable formats like XML, JSON and SQL.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • t - Table to be converted if only one table export is needed
  • d - Target directory for the export
  • o - Output format. For example STATA, SPSS, CSV, SQL, XML or JSON
  • n - Value to be used in case of NULL. Default is 0 (zero)
  • T - Include protected fields. In META you can define fields that contain sensitive data. By default MySQLToFile excludes such fields.
Example
$ ./mysqltofile -u my_user -p my_pass -s my_schema -d ./my_target_directory -o STATA -n ""

GenSnapshot

GenSnapshot converts a MySQL schema (with META's dictionary tables) into an SQLite database (snapshot file) for offline cleaning. The snapshot file records any changes in the data that could be synchronized against the MySQL server using MySQLSync later on.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • a - Input SQLite audit file created by InitMETA
  • o - Target SQLite file
Example
$ ./gensnapshot -u my_user -p my_pass -s my_schema -a ./path_to_my_audit_file.sql -o my_snapshot_file.sqlite

MySQLSync

MySQLSync synchronizes the changes made in a snapshot file against the data in the MySQL server. It generates two files 1) an output file with warnings and errors occurring during the synchronization in CSV format, and 2) a script file containing any INSERT, DELETE or UPDATE performed in the server.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • S - Input SQLite snapshot file
  • l - Output log file
  • o - Output SQL script file
Example
$ ./mysqlsync -u my_user -p my_pass -s my_schema -S my_snapshot_file.sqlite -l path_to_my_log_file.CSV -o path_to_my_script_file.sql

Technology

META was built using:

  • C++, a general-purpose programming language.
  • Qt 5, a cross-platform application framework.
  • TClap, a small, flexible library that provides a simple interface for defining and accessing command line arguments.

Building and testing

To build this project:

$ sudo apt install qt5-qmake qtbase5-dev libqt5sql5-mysql
$ git clone https://github.com/ilri/meta.git
$ cd meta
$ qtchooser -run-tool=qmake -qt=5
$ make

This was tested on Ubuntu 18.04.

Author

Carlos Quiros (c.f.quiros_at_cgiar.org / cquiros_at_qlands.com)

License

This repository contains the code of:

Otherwise, the contents of this application is GPLv3.

About

A toolbox for managing research data in MySQL databases

Topics

Resources

Stars

1 star

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

META

META is a toolbox for managing research data in MySQL databases. It comprises of four command line tools performing different tasks. The toolbox is cross-platform and can be built on Windows, Linux and Mac.

The Toolbox

InitMETA

InitMETA initializes META's dictionary tables in a MySQL schema and generates the audit script files for both MySQL and snapshot file (SQLite).

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be initialized
  • u - User who has complete access to the schema
  • p - Password of the user
  • c - Create the dictionary tables. This will delete previous data including any audit records
  • d - Delete previous data
  • l - Load the dictionary data
  • v - Include views in the dictionary data
  • a - Target directory for the audit log script files
Example
$ ./initmeta -u my_user -p my_pass -s my_schema -c -l -u ./my_audit_directory

MySQLToFile

MySQLToFile converts a MySQL schema (with META's dictionary tables) into common human-readable formats like STATA, SPSS and CSV and interoperable formats like XML, JSON and SQL.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • t - Table to be converted if only one table export is needed
  • d - Target directory for the export
  • o - Output format. For example STATA, SPSS, CSV, SQL, XML or JSON
  • n - Value to be used in case of NULL. Default is 0 (zero)
  • T - Include protected fields. In META you can define fields that contain sensitive data. By default MySQLToFile excludes such fields.
Example
$ ./mysqltofile -u my_user -p my_pass -s my_schema -d ./my_target_directory -o STATA -n ""

GenSnapshot

GenSnapshot converts a MySQL schema (with META's dictionary tables) into an SQLite database (snapshot file) for offline cleaning. The snapshot file records any changes in the data that could be synchronized against the MySQL server using MySQLSync later on.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • a - Input SQLite audit file created by InitMETA
  • o - Target SQLite file
Example
$ ./gensnapshot -u my_user -p my_pass -s my_schema -a ./path_to_my_audit_file.sql -o my_snapshot_file.sqlite

MySQLSync

MySQLSync synchronizes the changes made in a snapshot file against the data in the MySQL server. It generates two files 1) an output file with warnings and errors occurring during the synchronization in CSV format, and 2) a script file containing any INSERT, DELETE or UPDATE performed in the server.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • S - Input SQLite snapshot file
  • l - Output log file
  • o - Output SQL script file
Example
$ ./mysqlsync -u my_user -p my_pass -s my_schema -S my_snapshot_file.sqlite -l path_to_my_log_file.CSV -o path_to_my_script_file.sql

Technology

META was built using:

  • C++, a general-purpose programming language.
  • Qt 5, a cross-platform application framework.
  • TClap, a small, flexible library that provides a simple interface for defining and accessing command line arguments.

Building and testing

To build this project:

$ sudo apt install qt5-qmake qtbase5-dev libqt5sql5-mysql
$ git clone https://github.com/ilri/meta.git
$ cd meta
$ qtchooser -run-tool=qmake -qt=5
$ make

This was tested on Ubuntu 18.04.

Author

Carlos Quiros (c.f.quiros_at_cgiar.org / cquiros_at_qlands.com)

License

This repository contains the code of:

Otherwise, the contents of this application is GPLv3.

About

A toolbox for managing research data in MySQL databases

Topics

Resources

Stars

1 star

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

META

META is a toolbox for managing research data in MySQL databases. It comprises of four command line tools performing different tasks. The toolbox is cross-platform and can be built on Windows, Linux and Mac.

The Toolbox

InitMETA

InitMETA initializes META's dictionary tables in a MySQL schema and generates the audit script files for both MySQL and snapshot file (SQLite).

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be initialized
  • u - User who has complete access to the schema
  • p - Password of the user
  • c - Create the dictionary tables. This will delete previous data including any audit records
  • d - Delete previous data
  • l - Load the dictionary data
  • v - Include views in the dictionary data
  • a - Target directory for the audit log script files
Example
$ ./initmeta -u my_user -p my_pass -s my_schema -c -l -u ./my_audit_directory

MySQLToFile

MySQLToFile converts a MySQL schema (with META's dictionary tables) into common human-readable formats like STATA, SPSS and CSV and interoperable formats like XML, JSON and SQL.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • t - Table to be converted if only one table export is needed
  • d - Target directory for the export
  • o - Output format. For example STATA, SPSS, CSV, SQL, XML or JSON
  • n - Value to be used in case of NULL. Default is 0 (zero)
  • T - Include protected fields. In META you can define fields that contain sensitive data. By default MySQLToFile excludes such fields.
Example
$ ./mysqltofile -u my_user -p my_pass -s my_schema -d ./my_target_directory -o STATA -n ""

GenSnapshot

GenSnapshot converts a MySQL schema (with META's dictionary tables) into an SQLite database (snapshot file) for offline cleaning. The snapshot file records any changes in the data that could be synchronized against the MySQL server using MySQLSync later on.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • a - Input SQLite audit file created by InitMETA
  • o - Target SQLite file
Example
$ ./gensnapshot -u my_user -p my_pass -s my_schema -a ./path_to_my_audit_file.sql -o my_snapshot_file.sqlite

MySQLSync

MySQLSync synchronizes the changes made in a snapshot file against the data in the MySQL server. It generates two files 1) an output file with warnings and errors occurring during the synchronization in CSV format, and 2) a script file containing any INSERT, DELETE or UPDATE performed in the server.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • S - Input SQLite snapshot file
  • l - Output log file
  • o - Output SQL script file
Example
$ ./mysqlsync -u my_user -p my_pass -s my_schema -S my_snapshot_file.sqlite -l path_to_my_log_file.CSV -o path_to_my_script_file.sql

Technology

META was built using:

  • C++, a general-purpose programming language.
  • Qt 5, a cross-platform application framework.
  • TClap, a small, flexible library that provides a simple interface for defining and accessing command line arguments.

Building and testing

To build this project:

$ sudo apt install qt5-qmake qtbase5-dev libqt5sql5-mysql
$ git clone https://github.com/ilri/meta.git
$ cd meta
$ qtchooser -run-tool=qmake -qt=5
$ make

This was tested on Ubuntu 18.04.

Author

Carlos Quiros (c.f.quiros_at_cgiar.org / cquiros_at_qlands.com)

License

This repository contains the code of:

Otherwise, the contents of this application is GPLv3.

About

A toolbox for managing research data in MySQL databases

Topics

Resources

Stars

1 star

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

META

META is a toolbox for managing research data in MySQL databases. It comprises of four command line tools performing different tasks. The toolbox is cross-platform and can be built on Windows, Linux and Mac.

The Toolbox

InitMETA

InitMETA initializes META's dictionary tables in a MySQL schema and generates the audit script files for both MySQL and snapshot file (SQLite).

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be initialized
  • u - User who has complete access to the schema
  • p - Password of the user
  • c - Create the dictionary tables. This will delete previous data including any audit records
  • d - Delete previous data
  • l - Load the dictionary data
  • v - Include views in the dictionary data
  • a - Target directory for the audit log script files
Example
$ ./initmeta -u my_user -p my_pass -s my_schema -c -l -u ./my_audit_directory

MySQLToFile

MySQLToFile converts a MySQL schema (with META's dictionary tables) into common human-readable formats like STATA, SPSS and CSV and interoperable formats like XML, JSON and SQL.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • t - Table to be converted if only one table export is needed
  • d - Target directory for the export
  • o - Output format. For example STATA, SPSS, CSV, SQL, XML or JSON
  • n - Value to be used in case of NULL. Default is 0 (zero)
  • T - Include protected fields. In META you can define fields that contain sensitive data. By default MySQLToFile excludes such fields.
Example
$ ./mysqltofile -u my_user -p my_pass -s my_schema -d ./my_target_directory -o STATA -n ""

GenSnapshot

GenSnapshot converts a MySQL schema (with META's dictionary tables) into an SQLite database (snapshot file) for offline cleaning. The snapshot file records any changes in the data that could be synchronized against the MySQL server using MySQLSync later on.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • a - Input SQLite audit file created by InitMETA
  • o - Target SQLite file
Example
$ ./gensnapshot -u my_user -p my_pass -s my_schema -a ./path_to_my_audit_file.sql -o my_snapshot_file.sqlite

MySQLSync

MySQLSync synchronizes the changes made in a snapshot file against the data in the MySQL server. It generates two files 1) an output file with warnings and errors occurring during the synchronization in CSV format, and 2) a script file containing any INSERT, DELETE or UPDATE performed in the server.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • S - Input SQLite snapshot file
  • l - Output log file
  • o - Output SQL script file
Example
$ ./mysqlsync -u my_user -p my_pass -s my_schema -S my_snapshot_file.sqlite -l path_to_my_log_file.CSV -o path_to_my_script_file.sql

Technology

META was built using:

  • C++, a general-purpose programming language.
  • Qt 5, a cross-platform application framework.
  • TClap, a small, flexible library that provides a simple interface for defining and accessing command line arguments.

Building and testing

To build this project:

$ sudo apt install qt5-qmake qtbase5-dev libqt5sql5-mysql
$ git clone https://github.com/ilri/meta.git
$ cd meta
$ qtchooser -run-tool=qmake -qt=5
$ make

This was tested on Ubuntu 18.04.

Author

Carlos Quiros (c.f.quiros_at_cgiar.org / cquiros_at_qlands.com)

License

This repository contains the code of:

Otherwise, the contents of this application is GPLv3.

About

A toolbox for managing research data in MySQL databases

Topics

Resources

Stars

1 star

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

META

META is a toolbox for managing research data in MySQL databases. It comprises of four command line tools performing different tasks. The toolbox is cross-platform and can be built on Windows, Linux and Mac.

The Toolbox

InitMETA

InitMETA initializes META's dictionary tables in a MySQL schema and generates the audit script files for both MySQL and snapshot file (SQLite).

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be initialized
  • u - User who has complete access to the schema
  • p - Password of the user
  • c - Create the dictionary tables. This will delete previous data including any audit records
  • d - Delete previous data
  • l - Load the dictionary data
  • v - Include views in the dictionary data
  • a - Target directory for the audit log script files
Example
$ ./initmeta -u my_user -p my_pass -s my_schema -c -l -u ./my_audit_directory

MySQLToFile

MySQLToFile converts a MySQL schema (with META's dictionary tables) into common human-readable formats like STATA, SPSS and CSV and interoperable formats like XML, JSON and SQL.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • t - Table to be converted if only one table export is needed
  • d - Target directory for the export
  • o - Output format. For example STATA, SPSS, CSV, SQL, XML or JSON
  • n - Value to be used in case of NULL. Default is 0 (zero)
  • T - Include protected fields. In META you can define fields that contain sensitive data. By default MySQLToFile excludes such fields.
Example
$ ./mysqltofile -u my_user -p my_pass -s my_schema -d ./my_target_directory -o STATA -n ""

GenSnapshot

GenSnapshot converts a MySQL schema (with META's dictionary tables) into an SQLite database (snapshot file) for offline cleaning. The snapshot file records any changes in the data that could be synchronized against the MySQL server using MySQLSync later on.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • a - Input SQLite audit file created by InitMETA
  • o - Target SQLite file
Example
$ ./gensnapshot -u my_user -p my_pass -s my_schema -a ./path_to_my_audit_file.sql -o my_snapshot_file.sqlite

MySQLSync

MySQLSync synchronizes the changes made in a snapshot file against the data in the MySQL server. It generates two files 1) an output file with warnings and errors occurring during the synchronization in CSV format, and 2) a script file containing any INSERT, DELETE or UPDATE performed in the server.

Parameters

  • H - MySQL host server. Default is localhost
  • P - MySQL port. Default 3306
  • s - Schema to be converted
  • u - User who has select access to the schema
  • p - Password of the user
  • S - Input SQLite snapshot file
  • l - Output log file
  • o - Output SQL script file
Example
$ ./mysqlsync -u my_user -p my_pass -s my_schema -S my_snapshot_file.sqlite -l path_to_my_log_file.CSV -o path_to_my_script_file.sql

Technology

META was built using:

  • C++, a general-purpose programming language.
  • Qt 5, a cross-platform application framework.
  • TClap, a small, flexible library that provides a simple interface for defining and accessing command line arguments.

Building and testing

To build this project:

$ sudo apt install qt5-qmake qtbase5-dev libqt5sql5-mysql
$ git clone https://github.com/ilri/meta.git
$ cd meta
$ qtchooser -run-tool=qmake -qt=5
$ make

This was tested on Ubuntu 18.04.

Author

Carlos Quiros (c.f.quiros_at_cgiar.org / cquiros_at_qlands.com)

License

This repository contains the code of:

Otherwise, the contents of this application is GPLv3.

About

A toolbox for managing research data in MySQL databases

Topics

Resources

Stars

1 star

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages