In Laravel 5.3 within my up()
function how can I insert data into another table?
I can only see things in the guide for updating columns etc
You can do it as what you do in normal Laravel code as long as that table has been created already. For example:
public function up()
{
Schema::create('this_table', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
});
\DB::table('that_table')->insert([]);
}
As others suggest, you should consider if it's better to move such logic into database seeders. However, I find sometimes it's better to have such logic just live inside migration files when your table have constant initial data.
FYI, Here is an open source Laravel project does this.
===========Edit 5 years later=============
I suggest anyone want to do this consider database seeders as the original answer suggested. Now Laravel have a schema:dump
command that can be used for squashing your migrations. This might be useful if you have a project with many migrations. For me, I have a project with 408 migrations and it's not easy to use the schema:dump
now as data filling methods in migrations will be lost.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With