firevel / mysql-to-spanner
Laravel tool to convert MySQL schemas to Cloud Spanner Data Definition Language (DDL)
0.1.2
2021-11-22 19:04 UTC
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_INCREMENT
can 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
--connection
to specify source (MySQL) connection name. - Use
--file
to specify output ex.:php artisan db:spanner-dump --file=storage/spanner-ddl.txt
. - Use
--disk
together with--file
to save output in storage defined in/config/filesystems.php
, ex.:php artisan db:spanner-dump --disk=gcs --file=exports/spanner-ddl.txt
. - Use
--ignore-table
to 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-key
to specify default primary key ex.:php artisan db:spanner-dump --default-primary-key=id
. - Use
--only
to 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
--connection
to specify source (MySQL) connection name. - Use
--spanner-connection
to specify connection name (spanner
by default). - Use
--fresh
to delete database before creating schemas. - Use
--data
to migrate rows. - Use
--chunk-size
to specify chunk size used in data migration. - Use
--schema=false
to skip schema migration. - Use
--ignore-table
to 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-key
to specify default primary key ex.:php artisan db:spanner-dump --default-primary-key=id
. - Use
--only
to 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.