milad
5 سال پیش توسط milad مطرح شد
3 پاسخ

تغییر Engine دیتابیس

سلام
دوستان چجوری میتونم پیش فرض Engine دیتابیس از myisam به InnoDB تغییر بدم.چون هر دفعه migrate می کنم به صورت پیش فرض میاد که اجازه نمیده جدول های من کلید خارجی بگیره.درضمن در پوشه config/db مقدار engine از نول به InnoDB تغییر دادم ولی ارور داد ide!!


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

در اجرا هم خطایی داشتید؟


در فایل مایگریشن هم میتونید بصورت زیر Engine رو مشخص کنید :


Schema::create('users', function($table)
{
    $table->engine = 'InnoDB';

    $table->string('email');
});

اما برای هر جدول باید دوباره این پراپرتی رو مقداردهی کنید.
راه درستش استفاده از فایل تنظیمات دیتابیس لاراوله: config/database.php


milad
@miladtest70 5 سال پیش مطرح شد
0

من تغییرات تو فایل config انجام دادم اولا که خطایی به این تغییرات میده(کشیدن خط قرمز...)
ثانیا وقتی میخام از کامنت استفاده کنم چیزی از php artisan بزنم (مثلا ساخت کنترلر) بلافاصله ارور میده که تغییرات تو فایل کانفیگ مشکل داره!!
درضمن اگه بخام یکی یکی بیام توschema اون خط اضافه کنم فکر نکنم تصمیم صحیح تری باشه.


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

از آرایه داخل فایل config/database.php قسمت connections > mysql رو چک کنید:
باید شبیه زیر باشه

        'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => 'InnoDB',
        ],

اگر این قسمت درسته، احتمالا جای دیگه‌ای از فایل کانفیگ مورد داره


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام