如何使用php artisan命令为Laravel Project创建两个表的迁移?

时间:2015-02-24 04:41:37

标签: php composer-php laravel-5

我正在使用composer来迁移这样的两个表:

php artisan make:migration create_two_tables --create="projects","tasks"

database->migration文件夹中创建文件。

但在使用

进行迁移时
php artisan migrate

它在数据库中只创建这样的表:

'projects,tasks'

作为一张桌子。

我只想要一个文件,只有一个命令,就像我在top中做的那样,用于在db中迁移两个表。

有没有可能得到这个?

注意:我的上司命令我不要不惜一切代价改变数据库迁移文件......

任何人都可以帮助我......

2 个答案:

答案 0 :(得分:2)

make:migration命令只是从模板创建新的迁移文件。要实际定义迁移,通常需要编辑该文件。所以在你的情况下你会这样做:

php artisan make:migration create_two_tables --create="projects"

然后打开***_create_two_tables.php迁移文件并添加第二个表:

/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::create('projects', function(Blueprint $table)
    {

    });

    Schema::create('tasks', function(Blueprint $table)
    {

    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::drop('projects');
    Schema::drop('tasks');
}

通常您还想在表中添加实际列。而你在Schema::create闭包内做了什么:

Schema::create('projects', function(Blueprint $table)
{
    $table->increments('id');
    $table->string('name');
    // and so on
});

Read more about creating tables with the Schema Builder here

答案 1 :(得分:1)

如果您只想通过工匠创建两个表而不向这些表添加任何列,则可以创建两个迁移。为每个表创建一个。当你运行

 php artisan make:migration create_projects_table --create=projects    
 php artisan make:migration create_tasks_table --create=tasks
 php artisan migrate 

它将执行两次迁移并为您创建两个表。