fix description

This commit is contained in:
2026-07-29 21:46:48 +03:30
parent e8651135d1
commit f921e97466
5 changed files with 60 additions and 7 deletions
@@ -13,9 +13,14 @@ return new class extends Migration
public function up(): void
{
if (Schema::hasTable('products') && ! Schema::hasColumn('products', 'description')) {
Schema::table('products', function ($table) {
$table->text('description')->nullable();
});
// charset صریح — روی سرورهای latin1-default، TEXT بدون charset فارسی را نمی‌پذیرد
DB::statement(
'ALTER TABLE `products` ADD COLUMN `description` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL'
);
} elseif (Schema::hasTable('products') && Schema::hasColumn('products', 'description')) {
DB::statement(
'ALTER TABLE `products` MODIFY COLUMN `description` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL'
);
}
if (! Schema::hasTable('settings')) {
@@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
/**
* روی بعضی سرورها (DB default = latin1) ستون description بدون charset اضافه شده
* و ذخیرهٔ فارسی با خطای 3988 می‌خورد.
*/
return new class extends Migration
{
public function up(): void
{
if (! Schema::hasTable('products') || ! Schema::hasColumn('products', 'description')) {
return;
}
DB::statement(
'ALTER TABLE `products` MODIFY COLUMN `description` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL'
);
}
public function down(): void
{
// عمداً به latin1 برنمی‌گردیم
}
};