53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
from pathlib import Path
|
|
|
|
import click
|
|
|
|
from odoo_openupgrade_wizard.cli.cli_options import (
|
|
database_option_required,
|
|
get_migration_step_from_options,
|
|
step_option,
|
|
)
|
|
from odoo_openupgrade_wizard.tools.tools_odoo import (
|
|
execute_click_odoo_python_files,
|
|
)
|
|
|
|
|
|
@click.command()
|
|
@step_option
|
|
@database_option_required
|
|
@click.option(
|
|
"--script-file-path",
|
|
multiple=True,
|
|
type=click.Path(
|
|
exists=True,
|
|
dir_okay=False,
|
|
),
|
|
help="""List of Python files to execute, with either an absolute path
|
|
or path relative to the project directory. With either method, the
|
|
path must be located inside the project directory so that the
|
|
Docker container can access it.
|
|
|
|
Files will be executed in
|
|
the order listed. If no files are specified, all Python (.py) files
|
|
in the `step` directory will be sorted alphabetically and then
|
|
executed in order.
|
|
|
|
See README.md for more information and examples.""",
|
|
)
|
|
@click.pass_context
|
|
def execute_script_python(ctx, step, database, script_file_path):
|
|
"""Execute Python scripts for a migration step.
|
|
|
|
Executes one or more custom Python scripts in the context of a specific
|
|
migration step, using the Odoo shell (with full ORM access). This command
|
|
allows you to manually run Python logic outside of the default
|
|
post-migration.py file for a given step. It allows fine-tuning
|
|
of migration behavior by manually specifying logic.
|
|
"""
|
|
|
|
migration_step = get_migration_step_from_options(ctx, step)
|
|
|
|
execute_click_odoo_python_files(
|
|
ctx, database, migration_step, [Path(x) for x in script_file_path]
|
|
)
|