data: make migration from legacy data to new app

This commit is contained in:
myuqinurrohman 2025-03-20 13:50:40 +07:00
parent 0bd398b3a0
commit 02ad2ae318
5 changed files with 45 additions and 2 deletions

View File

@ -0,0 +1,12 @@
<?php
namespace App\Models\Legacy;
use Illuminate\Database\Eloquent\Model;
class OldMediaMonitoring extends Model
{
protected $connection = 'legacy';
protected $table = 'media_monitorings';
}

View File

@ -3,9 +3,12 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class MediaMonitoring extends Model
{
use SoftDeletes;
protected $table = 'media_monitorings';
protected $fillable = [

View File

@ -19,7 +19,7 @@ public function up(): void
$table->text('title');
$table->string('channel');
$table->string('writter');
$table->string('link')->nullable();
$table->text('link')->nullable();
$table->string('news_page')->nullable();
$table->text('quote')->nullable();
$table->text('content');
@ -30,6 +30,7 @@ public function up(): void
$table->unsignedBigInteger('enhancer_id');
$table->foreign('enhancer_id')->references('id')->on('users');
$table->timestamps();
$table->softDeletes();
});
}

View File

@ -21,5 +21,6 @@ public function run(): void
$this->call(MediaSeeder::class);
$this->call(JournalistSeeder::class);
$this->call(GovernmentAgencySeeder::class);
$this->call(MediaMonitoringSeeder::class);
}
}

View File

@ -2,8 +2,11 @@
namespace Database\Seeders;
use App\Models\Legacy\OldMediaMonitoring;
use App\Models\MediaMonitoring;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Log;
class MediaMonitoringSeeder extends Seeder
{
@ -12,6 +15,29 @@ class MediaMonitoringSeeder extends Seeder
*/
public function run(): void
{
//
$legacyMediaMonitorings = OldMediaMonitoring::all();
foreach($legacyMediaMonitorings as $legacyMediaMonitoring){
MediaMonitoring::create([
'id' => $legacyMediaMonitoring->id,
'code' => $legacyMediaMonitoring->code,
'media_name' => $legacyMediaMonitoring->media_name,
'theme' => $legacyMediaMonitoring->theme,
'title' => $legacyMediaMonitoring->title,
'channel' => $legacyMediaMonitoring->channel,
'writter' => $legacyMediaMonitoring->writter,
'link' => $legacyMediaMonitoring->link,
'news_page' => $legacyMediaMonitoring->news_page,
'quote' => $legacyMediaMonitoring->quote,
'content' => $legacyMediaMonitoring->content,
'influencer' => $legacyMediaMonitoring->influencer,
'keyword' => $legacyMediaMonitoring->keyword,
'image' => $legacyMediaMonitoring->image,
'release_date' => $legacyMediaMonitoring->release_date,
'created_at' => $legacyMediaMonitoring->created_at,
'updated_at' => $legacyMediaMonitoring->updated_at,
'deleted_at' => $legacyMediaMonitoring->deleted_at,
'enhancer_id' => in_array($legacyMediaMonitoring->enhancer, [0, 3]) ? 1 : $legacyMediaMonitoring->enhancer,
]);
}
}
}