hitakiri
@hitakiri

Как миграциями подключить уже рабочую БД?

Фреймворк - Lumen (тоже, что и Laravel, только меньший функционал).
БД - MySQL 5.5

Суть вопроса: есть готовая бд с заполненными таблицами. Не могу найти в документации, как работать с уже существующими таблицами в бд через миграции.
Везде описание: инсталлируем миграции -> создаем таблицу -> работаем с файликом в папке "migrations".
  • Вопрос задан
  • 1636 просмотров
Пригласить эксперта
Ответы на вопрос 3
Если очень хотите, можете написать миграции, которые бы создали аналогичные таблицы со всеми полями и ключами, затем создать таблицу migrations и заполнить ее своими миграциями. Вот пример из моей бд.
--
-- Структура таблицы `migrations`
--

CREATE TABLE IF NOT EXISTS `migrations` (
  `migration` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `batch` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Дамп данных таблицы `migrations`
--

INSERT INTO `migrations` (`migration`, `batch`) VALUES
('2015_10_20_154943_create_sessions_table', 1),
('2015_10_21_063052_create_visits_table', 1),
('2015_10_21_165314_create_claims_table', 1),
('2015_10_21_171026_create_notifications_table', 1);


Разумеется, миграции вы впишете свои. batch - откатывает их по очереди, в этом примере все миграции откатятся за один прием. Но я бы рекомендовал создать миграции с нуля, потому что если забудете какой-то внешний ключ или будете создавать таблицы в неправильном порядке, запуская миграцию с внешним ключом до того, как создана таблица, с которой та связана - поимеете гемора.
Ответ написан
AmdY
@AmdY
PHP и прочие вебштучки
Работать с новыми можно без проблем
создаёте миграцию и работаете с существующей таблицей
Schema::table('users', function ($table) {
    $table->string('email');
});

php artisan migrate

Если вы хотите сделать миграции по существующей базе, чтобы можно было заново сидить и рефрешить, то поищите нужный пакет, названия не помню, но они есть.
Ответ написан
Комментировать
@rsi
software engineer
Миграции это способ изменения базы данных. Во всех примерах показывают как писать миграции на создание таблиц, но это более мощный инструмент. Он позволяет производить со структурой базой любые изменение. Из этого вытекает вопрос, что вы имеете ввиду под "работать с уже существующими таблицами через миграции"?

Так же как и с не существующей:
- Хотите иметь миграции на создание вашей базы напишите их, не хотите не пишите просто работайте с базой без миграции
- Хотите модифицировать структуру (еще раз делаю акцент на том что миграции изменяют именно структуру базы, добавляют, удаляют таблицы, поля в базу, меняют их тип и тд) уже имеющихся таблиц? Напишите миграции на эти изменения.

Если у вас есть база и вы хотите подключить к ним ларавел то миграции вам вообще не нужным, так как за работу с данными в базе отвечают модели, а не миграции
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы