سلام
بعد از اعمال تغییرات یک روی ماگریشن چه دستوری را باید استفاده کنیم تا تغییرات روی جدول مربوطه در دیتا بیس اعمال شود؟
با تشکر.
C:\wamp64\www\laravel\test1>php artisan migrate
In Connection.php line 664:
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'categories' already exists (SQL: cre
ate table categories
(id
int unsigned not null auto_increment primary key, name
varchar(191) n
ot null, slug
varchar(191) not null, created_at
timestamp null, updated_at
timestamp null) def
ault character set utf8mb4 collate utf8mb4_unicode_ci)
اگه موقع ایجاد جدول اروری چیزی داده که جدول نصفه ایجاد شده باید اون جدول رو دستی از دیتابیس حذف کن
یا در غیر این صورت اگه میخوای تغییری ایجاد کنی
php artisan migrate:rollback --database[=DATABASE]
یا
php artisan migrate:rollback --step[=STEP]
و اگه میخوای ستونی چیزی به جدول اضافه کنی یا حذف کنی میتونی یه فایل migration جدید بسازی و با اون ستون رو به جدول اضافه یا کم کنی
php artisan make:migration add_new_field_totablr —table=post
دستور بالا ميتوني فيلد جديد به جدول پست ارسال كني بدونه اينكه اطاعات قبلي از بين بره
سلام دوست عزیز @amin66.karimi
خسته نباشید
سوالم داخل تصویر هست
من میخوام این تغییر رو بدم که
؛ فقط این جدول کتگوریز ؛ فقط این قسمتش رو در دیتابیس تغییر بده ؛
و بقیه ی اطلاعات ثبت شده در دیتابیس رو پاک نکنه
ولی نمیدونم چه دستوری استفاده کنم
برای ایجاد تغییرا ت باید پکیج زیر رو که برای خود لاراول هست رو نصب کنید
composer require doctrine/dbal
بعد از نصب یک migration برای جدولی که میخوای تغییر بدی ایجاد میکنید به این اسم
artisan make:migration update_category_table --table=categories
بعد دستور زیر رو مینویسی
Schema::table('categories', function (Blueprint $table) {
$table->foreignId('category_id')->constrained()->change();
});
مرحله آخرم php artisan migrate
فقط خودتون تایپ کنید چون شاید اشتباه تایپی داشته باشم
@mahdidv
نه متاسفانه ؛ تغییری نکرد
اول این پکیجی که شما گفتید رو ساختم
بعد دستوراتی که گفتید وارد کردم
تغییری نکرد ؛ اینم تصویرش ؛ توضیحات بیشتر تو تصویر گفتم
php artisan make:migration update_category_table --table=categories
با این دستور جدول رو ایجاد کن و مراحل بعدی حتما درست میشه
تو دستور قبلی جدول رو ارتباط نداده بودم برای همین کار نکرد
@mahdidv
ممنونم دوست عزیز ؛ از وقتی که میزاری ؛ دم شما گرم
متاسفانه جواب نداد ؛ و تغییری نکرد
و جدولی در دیتابیس ساخته نشد ؛و فیلدی از جدول کتگوریز تغییر نکرد
این کار با ماگریشن ها و جداول دیتابیس ؛ وقتی داریم با لاراول کار میکنیم ؛ اموزشی چیزی نداره ؟؟
خواهش میکنم
ببین وقتی change میکنی تو دیتابیس جدول اضافه نمیشه بلکه فیلدی که نوشتی تغییر میکنه
شما قبلا فیلد categoryid رو که nullable بوده با دستور change از حالت nullable در اوردین و کاملا درست انجام شده.
منظور از اینکه تغییر نکرده چیه؟
شما میخوایید فیلیدی اضافه کنید؟ یا اونو ویرایش کنید
این مستنداتش هست:
https://laravel.com/docs/5.3/migrations
@mahdidv
ممنونم عالی بود ؛ گرفتم چی شد ؛ راست می گین ؛ دستتون دردنکنه
میخواستم پیام تون رو لایک کنم ؛ متاسفانه نشد ؛ تجربه ام باید بالای 4000 باشه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟