php artisan migrate:make create_mytable fails: "migrate:make" is not defined

57,931

Solution 1

The syntax has changed to php artisan make:migration.

Here are the available make commands.

make:auth                    Create auth classes for the application
make:console                 Create a new Artisan command
make:controller              Create a new resource controller class
make:filter                  Create a new route filter class
make:migration               Create a new migration file
make:provider                Create a new service provider class
make:request                 Create a new form request class

You can see a full list of commands by running php artisan list


You might also be ineterested in the Laravel Generators package.

To use it with Laravel 5, you'll need to require "way/generators": "~3.0"

It gives you the following additional commands:

generate:controller          Generate a controller
generate:migration           Generate a new migration
generate:model               Generate a model
generate:pivot               Generate a pivot table
generate:publish-templates   Copy generator templates for user modification
generate:resource            Generate a new resource
generate:scaffold            Scaffold a new resource (with boilerplate)
generate:seed                Generate a database table seeder
generate:view                Generate a view

Solution 2

yes, in Laravel 5, this is moved to

php artisan make:migration (followed by the usual parameters you would have used before)

Solution 3

The artisan command for creating migrations in Laravel 5 is:

php artisan make:migration create_my_table --create="my_table"

For a list of all available arguments you could prefix the artisan command with "help":

php artisan help make:migration

Solution 4

Yes. Laravel 5 upwords php commands has been updated. Try and see below.

php artisan make:migration create_mytable

That worked for me.

Solution 5

I find as a nice thing to type php artisan. It should output the list of artisan commands:

Available commands:
  clear-compiled       Remove the compiled class file
  down                 Put the application into maintenance mode
  env                  Display the current framework environment
  help                 Displays help for a command
  inspire              Display an inspiring quote
  list                 Lists commands
  migrate              Run the database migrations
  optimize             Optimize the framework for better performance
  serve                Serve the application on the PHP development server
  tinker               Interact with your application
  up                   Bring the application out of maintenance mode
 app
  app:name             Set the application namespace
 auth
  auth:clear-resets    Flush expired password reset tokens
 cache
  cache:clear          Flush the application cache
  cache:forget         Remove an item from the cache
  cache:table          Create a migration for the cache database table
 config
  config:cache         Create a cache file for faster configuration loading
  config:clear         Remove the configuration cache file
 db
  db:seed              Seed the database with records
 event
  event:generate       Generate the missing events and listeners based on registration
 key
  key:generate         Set the application key
 make
  make:auth            Scaffold basic login and registration views and routes
  make:command         Create a new Artisan command
  make:controller      Create a new controller class
  make:event           Create a new event class
  make:job             Create a new job class
  make:listener        Create a new event listener class
  make:mail            Create a new email class
  make:middleware      Create a new middleware class
  make:migration       Create a new migration file
  make:model           Create a new Eloquent model class
  make:notification    Create a new notification class
  make:policy          Create a new policy class
  make:provider        Create a new service provider class
  make:request         Create a new form request class
  make:seeder          Create a new seeder class
  make:test            Create a new test class
 migrate
  migrate:install      Create the migration repository
  migrate:refresh      Reset and re-run all migrations
  migrate:reset        Rollback all database migrations
  migrate:rollback     Rollback the last database migration
  migrate:status       Show the status of each migration
 notifications
  notifications:table  Create a migration for the notifications table
 queue
  queue:failed         List all of the failed queue jobs
  queue:failed-table   Create a migration for the failed queue jobs database table
  queue:flush          Flush all of the failed queue jobs
  queue:forget         Delete a failed queue job
  queue:listen         Listen to a given queue
  queue:restart        Restart queue worker daemons after their current job
  queue:retry          Retry a failed queue job
  queue:table          Create a migration for the queue jobs database table
  queue:work           Start processing jobs on the queue as a daemon
 route
  route:cache          Create a route cache file for faster route registration
  route:clear          Remove the route cache file
  route:list           List all registered routes
 schedule
  schedule:run         Run the scheduled commands
 session
  session:table        Create a migration for the session database table
 storage
  storage:link         Create a symbolic link from "public/storage" to "storage/app/public"
 vendor
  vendor:publish       Publish any publishable assets from vendor packages
 view
  view:clear           Clear all compiled view files

This is a precious list. To create a migration file you need to type:

php artisan make:migration

Previous versions on Laravel (like Laravel 4) had different syntax to create a migration file.

php artisan migrate:make 

It has sense because the list of things you can make is big in Laravel 5:

make:auth            Scaffold basic login and registration views and routes
make:command         Create a new Artisan command
make:controller      Create a new controller class
make:event           Create a new event class
make:job             Create a new job class
make:listener        Create a new event listener class
make:mail            Create a new email class
make:middleware      Create a new middleware class
make:migration       Create a new migration file
make:model           Create a new Eloquent model class
make:notification    Create a new notification class
make:policy          Create a new policy class
make:provider        Create a new service provider class
make:request         Create a new form request class
make:seeder          Create a new seeder class
make:test            Create a new test class
Share:
57,931
Jack
Author by

Jack

Updated on July 05, 2022

Comments

  • Jack
    Jack almost 2 years

    When running the following command at the root of my Laravel 5 application,

    php artisan migrate:make create_mytable
    

    I get the following error:

    [InvalidArgumentException]              
    Command "migrate:make" is not defined.  
    Did you mean one of these?              
    migrate:reset                       
    migrate:refresh                     
    migrate:status                      
    migrate:rollback                    
    migrate:install                     
    migrate   
    

    Is there a new way to start migrations in Laravel 5?

  • dayuloli
    dayuloli about 9 years
    This does not answer the question
  • dayuloli
    dayuloli about 9 years
    Where in your answer did you specifically mention how to start a migration. You simply listed some commands available in artisan.
  • Khan Shahrukh
    Khan Shahrukh about 9 years
    Command number 6 is for migration I am not here to spoon feed people
  • dayuloli
    dayuloli about 9 years
    You don't need to spoon feed, but you do need to answer the question. If not, don't answer at all.
  • Vasko
    Vasko about 8 years
    sneaky laravel always changing the rules :) not good when your trying to learn it
  • fred
    fred over 6 years
    This is the biggest PiTA with Laravel imo. If you google this, just about every document says to use make and it's all wrong now. I run into this kind of thing over and over again with laravel. Even between minor versions. Each thing may seem minor but it adds up to a lot of wasted time trying to find the proper commands. They keep moving classes around and changing names and adding class directories as well. That's an even bigger PiTA to try keep on top of.
  • bart
    bart almost 6 years
    @fred Indeed, consistency and solid documentation is key to a great framework/language. Unfortunately many languages/frameworks fail in that.
  • Subhash Patel
    Subhash Patel over 5 years
    Thank's you save my time! @prosti
  • Constantin Beer
    Constantin Beer over 4 years
    Please provide more information and don't just refer to another link.