fix: add json translation columns migration, re-add /vendor to .gitignore

This commit is contained in:
parsa aghaei 2026-06-23 20:00:35 +03:30
parent db0cf119ab
commit e3e5033fec
2 changed files with 74 additions and 0 deletions

1
.gitignore vendored
View File

@ -4,6 +4,7 @@
/public/hot
/public/storage
/storage/*.key
/vendor
.env
.env.backup
.env.production

View File

@ -0,0 +1,73 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\DB;
return new class extends Migration
{
public function up(): void
{
// Add JSON columns for spatie/laravel-translatable on website_about_me
Schema::table('website_about_me', function (Blueprint $table) {
if (!Schema::hasColumn('website_about_me', 'title')) {
$table->json('title')->nullable()->after('image');
}
if (!Schema::hasColumn('website_about_me', 'description')) {
$table->json('description')->nullable()->after('title');
}
});
// Migrate data from translations table to JSON columns
DB::statement('
UPDATE website_about_me a
SET a.title = (
SELECT JSON_OBJECTAGG(locale, title)
FROM website_about_me_translations t
WHERE t.about_me_id = a.id
),
a.description = (
SELECT JSON_OBJECTAGG(locale, description)
FROM website_about_me_translations t
WHERE t.about_me_id = a.id
)
');
// Add JSON columns for spatie/laravel-translatable on website_skills
Schema::table('website_skills', function (Blueprint $table) {
if (!Schema::hasColumn('website_skills', 'title')) {
$table->json('title')->nullable()->after('image');
}
if (!Schema::hasColumn('website_skills', 'description')) {
$table->json('description')->nullable()->after('title');
}
});
// Migrate data from skill translations table to JSON columns
DB::statement('
UPDATE website_skills s
SET s.title = (
SELECT JSON_OBJECTAGG(locale, title)
FROM website_skill_translations t
WHERE t.skill_id = s.id
),
s.description = (
SELECT JSON_OBJECTAGG(locale, description)
FROM website_skill_translations t
WHERE t.skill_id = s.id
)
');
}
public function down(): void
{
Schema::table('website_about_me', function (Blueprint $table) {
$table->dropColumn(['title', 'description']);
});
Schema::table('website_skills', function (Blueprint $table) {
$table->dropColumn(['title', 'description']);
});
}
};