Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
In Connection.php line 664:
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'credit_prop_fees' already exists (SQL: create table `credit_prop_fees` (`id` int unsigned not null auto_increment primary key, `fee_id` int not null, `created_at` timestamp null, `updated_at`
timestamp null) default character set utf8mb4 collate utf8mb4_unicode_ci)
Есть 2 миграции
Первая
public function up()
{
Schema::create('credit_prop_fees', function (Blueprint $table) {
$table->increments('id');
$table->integer('fee_id');
$table->timestamps();
});
}
И во второй как видите есть удаление предыдущей таблицы
public function up()
{
Schema::dropIfExists('credit_prop_fees');
Schema::create('credit_prop_fees', function (Blueprint $table) {
$table->increments('id');
$table->integer('credit_id');
$table->integer('credit_prop_id');
$table->integer('fee_type_id');
$table->integer('fee_value_id');
$table->timestamps();
});
}
Что ему может тут не нравится Есть же Schema::dropIfExists('credit_prop_fees');
И даже вот это не срабатывает
C:\OSPanel\domains\laravel.bai.loc>php artisan tinker
Psy Shell v0.8.17 (PHP 7.1.12 — cli) by Justin Hileman
>>> Schema::drop('credit_prop_fees');
=> null
Спасибо огромное за ответы
Изменено imediasun (12.01.2018 17:22:35)
Не в сети
Вторая точно после первой идет? Если да, то попробуй comoser du, может забыл запустить. И еще, какую команду ты запускаешь?
Не в сети
Привет вторая не прямо за первой идет может чуть позже php artisan migrate:refresh composer dump-autoload запускал конечно
Изменено imediasun (12.01.2018 19:21:39)
Не в сети
Если refresh запускаешь, то может down() не срабатывает и не удаляет таблицу перед первой миграцией. Запусти php artisan migrate:fresh вместо refresh.
Не в сети
Она и в потоке не хочет срабатывать dropIfExist() когда я запускаю просто даже php artisan migrate. Я ж говорю даже тинкером не убирает таблицу
Изменено imediasun (12.01.2018 19:31:02)
Не в сети
А ты тинкер перезапустил после того, как изменил миграции?
Не в сети
Они у меня идут одна за другой через несколько, я запустил php artisan migrate у меня вылезла ошибка таблица не удалилась и я запустил тинкер получил null
Не в сети
Туплю. Таблица должна удаляться из тинкера в любом случае. Вижу твой вопрос на StackOverflow, может там помогут. )
Не в сети
А Schema::drop удаляет таблицу в тинкере?
Не в сети
Туплю Schema::dropIfExists('credit_prop_fees'); Удаляет из тинкера только почемуто в тинкере null как ответ, но таблица удаляется
Изменено imediasun (12.01.2018 20:36:51)
Не в сети
null это нормально. Давай по порядку. Если ты удалишь таблицу, запустишь composer du и после php artisan migrate, ты получаешь ошибку? Если да, то покажи имена файлов обеих миграций, просто чтобы быть уверенным.
Не в сети
Не в сети
А кодировка не влияет вот в месадже чтото пишут про кодировку
http://prntscr.com/hzkmlr
Не в сети
А у тебя репо открыт? Можно посмотреть все миграции как-то? Или вообще клонировать и попробовать самому.
Не в сети
Что ты имеешь ввиду репо открыт? http://prntscr.com/hzkp80
Не в сети
Код на github/bitbucket?
Не в сети
bitbucket я клонировал его какое имеет отношение репозиторий к миграциям?
Не в сети
bitbucket я клонировал его какое имеет отношение репозиторий к миграциям?
Можно посмотреть все миграции как-то? Или вообще клонировать и попробовать самому.
Не в сети
В общем там из-за имени класса/названия файла конфликт.
1. Переименуй класс второй миграции в RecreateCreditPropFeesTable.
2. Переименуй имя файла в recreate вместо create.
3. composer du
4. php artisan migrate:fresh
Миграция работает.
У тебя дальше там еще ошибки, но с мними, думаю, разберешься.
Не в сети
Спасибо тебе огромное
Не в сети