Convert MySQL schema (from a .sql file) into a BigQuery-compatible schema in JSON format.
- Maps common MySQL data types to BigQuery types.
- Customize conversions with additional mappings.
- Option to handle and drop virtual fields in MySQL.
- Ensure you have Python 3.9 or higher installed.
- We use
poetryfor dependency management. Ensure it's installed. - Clone this repository and navigate to the project directory.
To convert a MySQL .sql schema to a BigQuery JSON schema:
poetry run mysql-to-bigquery-schema-converter <path_to_sql_file> [options]Alternatively, install the package and use the mysql-to-bigquery-schema-converter command directly.
-o,--output-path: File path where the converted.jsonschema should be stored. By default, the schema is printed to stdout.-t,--extra-type-mappings: Provide a path to a.jsonfile to extend and/or override default type mappings.-f,--extra-field-mappings: Provide a path to a.jsonfile to assign a specific type to a particular field.-d,--drop-virtual-fields: Set this flag to exclude virtual fields in the generated.jsonschema.
To validate the conversion, run the tests:
poetry run python -m unittest discover -s tests
The tests/test_data folder contains test cases and their expected outputs.
The default MySQL to BigQuery type mappings are in types_map.json. If you need different mappings, you can use the -t (or --extra-type-mappings) and -f (or --extra-field-mappings) options.
- Pull requests and issues for improvements are welcome.
Licensed under the MIT License. Check out the LICENSE file.