firevel / mysql-to-spanner
Laravel tool to convert MySQL schemas to Cloud Spanner Data Definition Language (DDL)
Installs: 154
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/firevel/mysql-to-spanner
Requires
- php: ^7.2|^8.0
- ext-bcmath: *
- colopl/laravel-spanner: ^3.9.1
- illuminate/contracts: ^7.0|^8.0
- illuminate/support: ^7.0|^8.0
- mgcosta/mysql-to-cloud-spanner: ^0.4.3
Requires (Dev)
- brianium/paratest: ^6.2
- nunomaduro/collision: ^5.3
- orchestra/testbench: ^6.15
- phpunit/phpunit: ^9.3
- spatie/laravel-ray: ^1.23
- vimeo/psalm: ^4.8
README
Migrating from MySQL to Cloud Spanner
Start here: Migrating from MySQL to Cloud Spanner.
Make sure that:
- All tables got primary keys.
AUTO_INCREMENTcan be ignored (not supported by Cloud Spanner).
Installation
You can install the package via composer:
composer require firevel/mysql-to-spanner
Usage
MySQL dump
You can dump your MySQL database using command:
php artisan db:spanner-dump
Parameters supported:
- Use
--connectionto specify source (MySQL) connection name. - Use
--fileto specify output ex.:php artisan db:spanner-dump --file=storage/spanner-ddl.txt. - Use
--disktogether with--fileto save output in storage defined in/config/filesystems.php, ex.:php artisan db:spanner-dump --disk=gcs --file=exports/spanner-ddl.txt. - Use
--ignore-tableto specify tables to ignore during dump, ex:php artisan db:spanner-dump --ignore-table=password_resets,php artisan db:spanner-dump --ignore-table=tmp_*,php artisan db:spanner-dump --ignore-table=table1,table2. - Use
--default-primary-keyto specify default primary key ex.:php artisan db:spanner-dump --default-primary-key=id. - Use
--onlyto specify tables to export ex.:php artisan db:spanner-dump --only=table1,table2.
MySQL to Spanner migration
You can migrate your MySQL data to Spanner using command:
php artisan db:spanner-migrate
By default only schema will be migrated, if you would like to migrate schema and data run:
php artisan db:spanner-migrate --data
Parameters supported:
- Use
--connectionto specify source (MySQL) connection name. - Use
--spanner-connectionto specify connection name (spannerby default). - Use
--freshto delete database before creating schemas. - Use
--datato migrate rows. - Use
--chunk-sizeto specify chunk size used in data migration. - Use
--schema=falseto skip schema migration. - Use
--ignore-tableto specify tables to ignore during dump, ex:php artisan db:spanner-dump --ignore-table=password_resets,php artisan db:spanner-dump --ignore-table=tmp_*,php artisan db:spanner-dump --ignore-table=table1,table2. - Use
--default-primary-keyto specify default primary key ex.:php artisan db:spanner-dump --default-primary-key=id. - Use
--onlyto specify tables to export ex.:php artisan db:spanner-dump --only=table1,table2.
Credits
License
The MIT License (MIT). Please see License File for more information.