I am trying to create mysql tables in Laravel 5. I created a file in /project/database/migrations
called users.php
:
[...]
public function up()
{
Schema::create('users', function(Blueprint $table)
{
$table->increments('id');
$table->string('username');
$table->string('fullname');
$table->int('number');
$table->string('email')->unique();
$table->string('password', 60);
$table->rememberToken();
$table->timestamps();
});
}
[...]
I then tried running these commands in the project
-folder:
$ php artisan migrate
$ php artisan migrate:install
$ php artisan migrate --pretend
None of them return any output and no tables are created. The database to be populated exists.
Migration files must match the pattern *_*.php
, or else they won't be found. Since users.php
does not match this pattern (it has no underscore), this file will not be found by the migrator.
Ideally, you should be creating your migration files using artisan:
php artisan make:migration create_users_table
This will create the file with the appropriate name, which you can then edit to flesh out your migration. The name will also include the timestamp, to help the migrator determine the order of migrations.
You can also use the --create
or --table
switches to add a little bit more boilerplate to help get you started:
php artisan make:migration create_users_table --create=users
The documentation on migrations can be found here.