Home » Php » php – Migrations from modules are not executed by yiic migrate command

php – Migrations from modules are not executed by yiic migrate command

Posted by: admin July 12, 2020 Leave a comment

Questions:

I am trying to install a user module in my Yii-based application. To do this, I have to migrate the files from:

webapp/protected/modules/user/migrations

I trying to run yiic migrate --migrationPath=user.migrations, but I’m getting an error:

the migration directory does not exist: user.migrations

I read that I have to set up user.migrations as an alias but I don’t know how to do it.

I also read, that migration’s default folder is determined bybasePath value, set in main configuration file (protected/config/main.php). I have changed it and it still doesn’t work correctly.

What can be wrong?

How to&Answers:

Try this:

yiic migrate --migrationPath=application.modules.user.migrations

Answer:

from your Command Line open the yiic of your protected folder. Not the yiic of the framework folder.

Answer:

In case anyone cant seem to make it work, here are some details:

Use: ./yiic migrate –migrationPath=application.dirName.migrations

How come?
Check the class MigrateCommand.
The public property $migrationPath=’application.migrations’ where ‘application’ will become ‘/home/yourUser/yourYiiApp/protected/ and ‘migrations’ will become, well ‘migrations’ after gets parsed.
So if you are running ./yiic just point to dirname/migrationFolder

Answer:

In case anyone else is struggling with this, I had to go into the protected folder and force it to use the right yiic with:

php yiic.php migrate --migrationPath=application.modules.user.migrations