我正在使用composer来迁移这样的两个表:
php artisan make:migration create_two_tables --create="projects","tasks"
在database->migration
文件夹中创建文件。
但在使用
进行迁移时php artisan migrate
它在数据库中只创建这样的表:
'projects,tasks'
作为一张桌子。
我只想要一个文件,只有一个命令,就像我在top中做的那样,用于在db中迁移两个表。
有没有可能得到这个?
注意:我的上司命令我不要不惜一切代价改变数据库迁移文件......
任何人都可以帮助我......
答案 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
它将执行两次迁移并为您创建两个表。