Maksim (Ellrion)
мб кто то пакет знает который слепок БД делает (как в Рельсах)? или просто скрипт имеет для копирования структуры бд?
Maksim (Ellrion)
или я не понятно спросил или никого нет или никто не знает) в вк надо еще написать наверное
Anonymous
Я допустим не понимаю рамки окружения
Anonymous
что бы ответить
Anonymous
Звучит то что ты написал приблизительно так - ребят я разобрал движок на машине - как собрать хз)
Maksim (Ellrion)
Я допустим не понимаю рамки окружения
есть приложение. у него много миграций. задача поднять новую чистую БД для инсталяции приложения на новом сервере
Anonymous
Эта штука просто делает миграции из бд которая есть
Anonymous
я так 1 проект на лару переводил)
Андрей
Да, если у него слишком много миграций, можно сократить
Maksim (Ellrion)
Да, если у него слишком много миграций, можно сократить
ну так я по сути теряю историю версионирования БД, для которой и есть миграции. а с этим пакетом я должен кильнуть все свои и заменить одной новой сгенериной
Andrey
ага) всем привет
Ку! Решил вернуться?
Anonymous
Так чем конкретно Migrate не угодил?
Maksim (Ellrion)
Так чем конкретно Migrate не угодил?
долго) и не уклюже. По сути там создал поле потом гдето переименовал а потом вообще удалил. (а в промежутке еще и данные погонял которых нет))
Maksim (Ellrion)
Тогда опиши проблему так, что б было понятнее, чего ты хочешь
ну фиг знает как еще более понятно написать, кроме: > есть приложение. у него много миграций. задача поднять новую чистую БД для инсталяции приложения на новом сервере
Maksim (Ellrion)
Ку! Решил вернуться?
скорее с вопросом заскочил ненадолго
Anonymous
Давай пойдем немного глубже
Anonymous
Что подразумевается под чистой
Maksim (Ellrion)
Что подразумевается под чистой
база данных без данных. таблицы\поля\индексы. Т.е. схемма
Maksim (Ellrion)
понятно что я могу запустить тупо миграции на новой бд и всё у меня будет. но по дороге я сделаю кучу всего ненужно. это как если бы вы что бы поднять код приложения запускали каждый комит как они в истории гита) вместо наката просто последнего состояния
Skeptic
как вариант выгрузить дамп БД и перенести, почему это не подходит?
Skeptic
или запустить реплицирование на новую БД
Skeptic
потом переключить ее для мастера В идеале в миграциях исключительно костяк, схемы и индексы, миграция данных - отдельный процесс
Maksim (Ellrion)
С помощью пакета, который я скинул тебе, ты как раз и попадешь сразу в последнее состояние. Зачем тебе старые версии бд?
что бы с тем пакетом мне поднять новую бд. я должен тем пакетом породить миграцию а свои все вообще убить. > Зачем тебе старые версии бд? затем же зачем и история комитов.
Maksim (Ellrion)
потом переключить ее для мастера В идеале в миграциях исключительно костяк, схемы и индексы, миграция данных - отдельный процесс
1. мне не нужны данные только схемма 2. сколько займето такая операция? условно дофига времени
Skeptic
1 - если нужна схема, то история миграций почему не поможет? ты плохо ее поддерживал? 2 - вопрос спорный, реплицировали 4тб - ну сутки
Skeptic
ну и какую ORM используешь? доктрина помогла бы тебе сделать актуальный слепок из БД, если история миграций страдала
Skeptic
)))))
Maksim (Ellrion)
1 - если нужна схема, то история миграций почему не поможет? ты плохо ее поддерживал? 2 - вопрос спорный, реплицировали 4тб - ну сутки
1. читай выше. так то надоело одно и тоже писать (https://t.me/laravel_pro/107265) 2. ну а мне надо разворачивать за условные несколько минут (например для CI)
Maksim (Ellrion)
Phpmyadmin? ))
ваще пошутил ахаха (нет)
Aleksey Y.
mysql dump умеет только схему без данных
Aleksey Y.
Если память не изменяет
Андрей
Мне кажется, ты создаёшь проблему там, где её нет
Skeptic
НЕ только
Skeptic
+1 зря заморачиваешься
Skeptic
на пустой базе пролетит в момент
Aleksey Y.
НЕ только
Имел ввиду, что умеет без
Maksim (Ellrion)
mysql dump умеет только схему без данных
это да вариант самый простой и очевидный. но допустим у меня нет доступной "готовой" бд.
Razer_Sergey
1. мне не нужны данные только схемма 2. сколько займето такая операция? условно дофига времени
Сделай дамп свой базы, разверни проект на каком нибудь сервере и запусти там все миграции, сделай дамп того что получилось и сравни структуры, все отличия запиши в новую миграцию для своего проекта и у тебя будет по миграциям самая актуальная база
Aleksey Y.
Если для CI то можно баш написать, который дамп снимать будет для тестов
Skeptic
да блин правда, делаешь дамп схемы, делаешь 1 миграцию, где просто RAW SQL
Skeptic
неприятно с точки зрения разных СУБД
Skeptic
php artisan migrate
Skeptic
))
Maksim (Ellrion)
ты мне предлогаешь все старые удалить?
Maksim (Ellrion)
я уже 10 раз написал что это не приемлимо
Aleksey Y.
это да вариант самый простой и очевидный. но допустим у меня нет доступной "готовой" бд.
Я думаю, что это ключевой момент, что бд нет рабочей, перед запуском сборки
Skeptic
я уже 10 раз написал что это не приемлимо
ахах) Сделай в гите ветку отдельную, в нее добавь только одну миграцию финальную Выльешь код, поднимешь проект, сделаешь миграцию, переключишься на мастер, удалишь ветку с 1 миграцией)
Skeptic
и сохранишь всю историю, если критикал
Skeptic
ты просто сам такую задачу поставил, миграции для того и нужны, чтобы сохранить историю итераций и по прохождению всего получить актуальную схему А тут то не хочу, это не нравится)
Skeptic
Я может просто не понял мотива жесткой необходимости не пропускать все итерации
Skeptic
это не загрузит тебя, не убьет
Maksim (Ellrion)
вот в Рельсах это решено достаточно просто. после каждой миграции дополнительно снимается слепок БД - schema у нее дополнительно есть версия (id-время последней миграции) и при необходимости новая бд поднимается по этой схеме а не по миграциям
Skeptic
В доктрине тоже это есть
Maksim (Ellrion)
В доктрине тоже это есть
это я услышал уже. но допустим у меня не рельса или доктрина а лара и элоквент
Razer_Sergey
для mysql тоже такие инструменты есть просто они ставятся отдельно, но это вначале проекта надо было делать
Skeptic
Эх, тогда плясать с бубном) с ногой на шее
Razer_Sergey
так что только сравнить дампы и дописать в последнюю миграцию разницы
Anonymous
Пфф
Anonymous
@ellrion расширь мать его миграции - создай метод который будет делать тебе слепок после каждой миграции
Anonymous
и ложи его куда тебе надо
Anonymous
и пройдись в 1 проход
Anonymous
лан последнее лишнее было
Maksim (Ellrion)
так изначально и был вопрос мб кто то такое уже делал, или юзает пакет или скрипт готовый)
Anonymous
там пара строк и пара переопределений
Anonymous
не разберешься чтоль?
Maksim (Ellrion)
там пара строк и пара переопределений
Ну фииг знает) что то ты как то сильно упростил задачу)
Anonymous
при твоих скилах до часа времени
Anonymous
кстати хорошая идея сейчас запилю
Skeptic
кстати хорошая идея сейчас запилю
Да миграции быстрее пройдут раз в 1000, чем ты реализуешь это решение, какой профит?