in notebooks/mysql2spanner/MySqlToSpanner_parameterize_script.py [0:0]
def parse_args(args: Optional[Sequence[str]] = None) -> Dict[str, Any]:
parser = argparse.ArgumentParser()
parser.add_argument(
f"--{constants.MYSQL_HOST_ARG}",
dest=constants.MYSQL_HOST,
required=True,
help="MySQL host or IP address",
)
parser.add_argument(
f"--{constants.MYSQL_PORT_ARG}",
dest=constants.MYSQL_PORT,
default="3306",
required=False,
help="MySQL port (Default: 3306)",
)
parser.add_argument(
f"--{constants.MYSQL_USERNAME_ARG}",
dest=constants.MYSQL_USERNAME,
required=True,
help="MySQL username",
)
parser.add_argument(
f"--{constants.MYSQL_PASSWORD_ARG}",
dest=constants.MYSQL_PASSWORD,
required=True,
help="MySQL password",
)
parser.add_argument(
f"--{constants.MYSQL_DATABASE_ARG}",
dest=constants.MYSQL_DATABASE,
required=True,
help="MySQL database name",
)
parser.add_argument(
f"--{constants.MYSQL_TABLE_LIST_ARG}",
dest=constants.MYSQL_TABLE_LIST,
required=False,
default="",
help="MySQL table list to migrate. "
'Leave empty for migrating complete database else provide tables as "table1,table2"',
)
parser.add_argument(
f"--{constants.MYSQL_OUTPUT_SPANNER_MODE_ARG}",
dest=constants.MYSQL_OUTPUT_SPANNER_MODE,
required=False,
default=constants.OUTPUT_MODE_OVERWRITE,
help="Spanner output write mode (Default: overwrite). "
"Use append when schema already exists in Spanner",
choices=[constants.OUTPUT_MODE_OVERWRITE, constants.OUTPUT_MODE_APPEND],
)
parser.add_argument(
f"--{constants.SPANNER_INSTANCE_ARG}",
dest=constants.SPANNER_INSTANCE,
required=True,
help="Spanner instance name",
)
parser.add_argument(
f"--{constants.SPANNER_DATABASE_ARG}",
dest=constants.SPANNER_DATABASE,
required=True,
help="Spanner database name",
)
parser.add_argument(
f"--{constants.SPANNER_TABLE_PRIMARY_KEYS_ARG}",
dest=constants.SPANNER_TABLE_PRIMARY_KEYS,
required=True,
help='Provide table & PK column which do not have PK in MySQL table {"table_name":"primary_key"}',
)
parser.add_argument(
f"--{constants.MAX_PARALLELISM_ARG}",
dest=constants.MAX_PARALLELISM,
type=int,
default=5,
required=False,
help="Maximum number of tables that will migrated parallelly (Default: 5)",
)
parser = get_common_args(parser)
known_args: argparse.Namespace
known_args, _ = parser.parse_known_args()
return vars(known_args)