S. Imp
S. Imp

Reputation: 2895

Laravel 5.4 migrate:generate fails with Way\Generators\Filesystem\FileNotFound error

I am trying to use Xethron/migrations-generator in a Laravel 5.4 project in order to generate migration files for all of the tables in my database. I followed the instructions in the README file for Laravel 5 to the letter. After resolving a complaint or two (had to install php7.0-xml extension), I try to run it but it spits out an error like so:

$ php artisan migrate:generate
Using connection: mysql

Generating migrations for: group_product_assoc, groups, product_hierarchy_assoc, product_product_assoc, products, replist, sessionsOLD, stores, tree, users, zipcode_coordinates

 Do you want to log these migrations in the migrations table? [Y/n] :
 > n

Setting up Tables and Index Migrations


  [Way\Generators\Filesystem\FileNotFound]                                               
  /var/www/my-project/vendor/way/generators/src/Way/Generators/templates/migration.txt  

I have reported this issue to Xethron on github and apparently I'm not the only person having this problem.

Can anyone tell me how to get this working? I'm not especially fluent with Laravel or Composer so please don't skimp on the basic explanations. I'm using:

Upvotes: 2

Views: 1459

Answers (3)

Xethron
Xethron

Reputation: 1156

This issue has been resolved, simply run composer update to get the latest version.

Apologies for the inconvenience.

Upvotes: 1

S. Imp
S. Imp

Reputation: 2895

J. Doe's answer is essentially correct as far as I can tell. I am posting a more complete solution here to describe the exact steps I took to fix the issue.

Apparently, there's something wrong with the Xethron code in that it tries to refer to a PHP template file that is somehow not properly included/required by the Xethron package. My short-term solution seems to have worked. That solution is to first cd into the working directory:

cd /var/www/my-project

then create the directory where the file should be:

mkdir -p vendor/way/generators/src/Way/Generators/templates

then we put the template file in there in one of two ways. One way, as suggested by J. Doe is to download the file from github (https://raw.githubusercontent.com/Xethron/Laravel-4-Generators/master/src/Way/Generators/templates/migration.txt) and save it as migration.txt in the directory we just created above. Or you can cd into the working directory and execute this command:

curl https://raw.githubusercontent.com/Xethron/Laravel-4-Generators/master/src/Way/Generators/templates/migration.txt > vendor/way/generators/src/Way/Generators/templates/migration.txt

The other way is to copy the template file which is apparently in a subdirectory of the xethron package:

cp vendor/xethron/laravel-4-generators/src/Way/Generators/templates/migration.txt vendor/way/generators/src/Way/Generators/templates/migration.txt

Once the file exists in that location, You should be able to run the command again without a hitch:

php artisan migrate:generate

Upvotes: 2

J. Doe
J. Doe

Reputation: 32

I had the same issue. You need to copy the following file to the location:

https://github.com/Xethron/Laravel-4-Generators/tree/master/src/Way/Generators/templates/migration.txt

In to this folder ( it's possible, this does not exist - so you can either create the folders OR change the configuration file (config.php) in vendor Xethron

/var/www/my-project/vendor/way/generators/src/Way/Generators/templates/

Upvotes: 2

Related Questions