acorn icon indicating copy to clipboard operation
acorn copied to clipboard

Unable to use custom artisan path when using make:migration

Open trajche opened this issue 1 year ago • 2 comments

Version

4.0

What did you expect to happen?

When using the artisan command make:migration, you are able to define a custom path relative to the application of where you would like to store the migrations. In this case, the goal was to store the migrations in a plugin directory, rather than the acorn default which sets the path to the theme directory.

What actually happens?

When using --path as a parameter, it's wp that inherits it rather than acorn (artisan), since you are also able to define a WordPress path when using WP CLI.

Steps to reproduce

  1. Install a Bedrock / WordPress instance
  2. Go to any directory and run wp acorn make:migration create_example_table --path=web/app/plugins/testplugin/
  3. You should get the error Warning: No WordPress installation found. since it's looking for WordPress in web/app/plugins/testplugin/

System info

No response

Log output

No response

Please confirm this isn't a support request.

Yes

trajche avatar Mar 27 '24 08:03 trajche

Until wp-cli supports -- as a delimiter to separate options from operands, we cannot provide a way to support this without resorting to janky solutions.

Guideline 10: The first -- argument that is not an option-argument should be accepted as a delimiter indicating the end of options. Any following arguments should be treated as operands, even if they begin with the '-' character.

In the meantime, you can use the Acorn binary to get around this.

./vendor/bin/acorn make:migration create_example_table --path=web/app/plugins/testplugin/

image

QWp6t avatar Apr 04 '24 17:04 QWp6t

I implemented the following (probably janky) solution in the bootloader so that we can use --artisan-path (and pass it as path to acorn) temporarily. https://github.com/roots/acorn/pull/377

trajche avatar May 18 '24 13:05 trajche