{"id":21341436,"url":"https://github.com/avto-dev/data-migrations-laravel","last_synced_at":"2025-07-12T14:34:13.003Z","repository":{"id":55509206,"uuid":"132609297","full_name":"avto-dev/data-migrations-laravel","owner":"avto-dev","description":"Package for database data migrations","archived":false,"fork":false,"pushed_at":"2024-05-31T11:44:04.000Z","size":185,"stargazers_count":1,"open_issues_count":0,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-07-01T09:45:46.748Z","etag":null,"topics":["data","database","laravel","migrations","package"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/avto-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-08T12:58:16.000Z","updated_at":"2024-05-31T11:43:54.000Z","dependencies_parsed_at":"2024-04-22T05:42:33.299Z","dependency_job_id":null,"html_url":"https://github.com/avto-dev/data-migrations-laravel","commit_stats":{"total_commits":88,"total_committers":6,"mean_commits":"14.666666666666666","dds":0.1477272727272727,"last_synced_commit":"49e5fda60acd5b85d3fb44dffcf4f4cc0b1490cb"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avto-dev%2Fdata-migrations-laravel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avto-dev%2Fdata-migrations-laravel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avto-dev%2Fdata-migrations-laravel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avto-dev%2Fdata-migrations-laravel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/avto-dev","download_url":"https://codeload.github.com/avto-dev/data-migrations-laravel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225824750,"owners_count":17529906,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data","database","laravel","migrations","package"],"created_at":"2024-11-22T00:56:52.548Z","updated_at":"2025-07-12T14:34:12.996Z","avatar_url":"https://github.com/avto-dev.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://laravel.com/assets/img/components/logo-laravel.svg\" alt=\"Laravel\" width=\"240\" /\u003e\n\u003c/p\u003e\n\n# Миграция данных БД для Laravel\n\n[![Version][badge_packagist_version]][link_packagist]\n[![PHP Version][badge_php_version]][link_packagist]\n[![Build Status][badge_build_status]][link_build_status]\n[![Coverage][badge_coverage]][link_coverage]\n[![Downloads count][badge_downloads_count]][link_packagist]\n[![License][badge_license]][link_license]\n\nДанный пакет добавляет в ваше Laravel-приложение функционал мигрирования данных БД.\n\n## Install\n\nRequire this package with composer using the following command:\n\n```shell\n$ composer require avto-dev/data-migrations-laravel \"^2.4\"\n```\n\n\u003e Installed `composer` is required ([how to install composer][getcomposer]).\n\n\u003e You need to fix the major version of package.\n\nОпубликуйте конфигурационный файл, при помощи которого вы можете переопределить имя таблицы в БД для хранения данных о миграциях, имя соединения и прочие настройки:\n\n```bash\n$ php ./artisan vendor:publish --provider=\"AvtoDev\\\\DataMigrationsLaravel\\\\ServiceProvider\"\n```\n\nПосле чего отредактируйте файл `./config/data-migrations.php` на своё усмотрение и завершите установку, выполнив команду:\n\n```bash\n$ php ./artisan data-migrate:install\n```\n\n## Использование\n\nПроблема, которую решает данный пакет - это отсутствие встроенного в Laravel механизма мигрирования \"боевых\" данных в ваше приложение (`seeds` это механизм заполнения фейковыми данными изначально, а миграции БД несут ответственность за схему и т.д., но _не_ данные).\n\nДля того, что бы лучше ознакомиться с \"механикой\" работы данного пакета рассмотрим следующую ситуацию - ваше приложение использует 2 подключения к различным БД (`default` и `second_db`), и вам необходимо в каждом из них в уже существующие таблицы добавить какие-либо данные.\n\nДля этого вам необходимо выполнить 2 команды:\n\n```bash\n$ ./artisan make:data-migration \"Add some data into first table\"\n$ ./artisan make:data-migration --connection=\"second_db\" \"Add some data into second table\"\n```\n\nПосле выполнения которых создадутся 2 файла:\n\n- `./storage/data_migrations/2018_01_01_022000_add_some_data_into_first_table.sql`\n- `./storage/data_migrations/second_db/2018_01_01_022001_add_some_data_into_second_table.sql`\n\nКоторые вы можете наполнить SQL-командами, производящими необходимые insert-ы и так далее (помните, что идеологически верно использовать их **только** для манипуляций с данными).\n\nПосле этого вам достаточно выполнить:\n\n```bash\n$ ./artisan data-migrate\n```\n\nИ данная команда произведёт поиск всех файлов (за исключением тех, чьи имена начинаются с точки) в директории `./storage/data_migrations` (путь может быть переопределен в конфигурационном файле) и попытается их выполнить, если запись об их выполнении не будет обнаружена в таблице `migrations_data` (которая была создана командой `data-migrate:install`).\n\n## Особенности\n\nПри использовании данного пакета следует знать о следующих особенностях:\n\n- Если в директории с файлами-миграциями данных `./storage/data_migrations` создать новую директорию, и уже в ней разместить файл-миграцию - то имя этой директории будет использовано как имя подключения к БД (описанное в файле `./config/database.php`), которое надо использовать для применения миграций, что в ней размещены;\n- Для применения миграций используются специальные классы, реализующие интерфейс `ExecutorContract`. Вы можете создать свой, указав его полное имя в файле-конфигурации;\n- Миграции могут быть упакованы с помощью `gzip` (`gzip file.sql`). При наличии установленного php-расширения `zlib` они распаковываются \"на лету\", главное чтоб имя файла миграции заканчивалось на `.gz`;\n- Миграции не имеют механизма \"отката\" (rollback-ов).\n\n### Artisan-команды\n\nПосле установки данного пакета вам станут доступны следующие команды:\n\n| Сигнатура команды        | Описание                                                                                         |\n|--------------------------|--------------------------------------------------------------------------------------------------|\n| `data-migrate:install`   | Производит создание таблицы в БД для хранения данных о миграциях данных                          |\n| `make:data-migration`    | Создаёт файл-миграции (пустой) в соответствии с необходимыми правилами именования и расположения |\n| `data-migrate`           | Запускает механизм мигрирования данных                                                           |\n| `data-migrate:status`    | Выводит данные о примененных и не примененных миграциях                                          |\n| `data-migrate:uninstall` | Удаляет таблицу с данными о миграциях данных из БД                                               |\n\n### Testing\n\nFor package testing we use `phpunit` framework and `docker` with `compose` plugin as develop environment. So, just write into your terminal after repository cloning:\n\n```bash\n$ make build\n$ make latest # or 'make lowest'\n$ make test\n```\n\n## Changes log\n\n[![Release date][badge_release_date]][link_releases]\n[![Commits since latest release][badge_commits_since_release]][link_commits]\n\nChanges log can be [found here][link_changes_log].\n\n## Support\n\n[![Issues][badge_issues]][link_issues]\n[![Issues][badge_pulls]][link_pulls]\n\nIf you will find any package errors, please, [make an issue][link_create_issue] in current repository.\n\n## License\n\nThis is open-sourced software licensed under the [MIT License][link_license].\n\n[badge_packagist_version]:https://img.shields.io/packagist/v/avto-dev/data-migrations-laravel.svg?maxAge=180\n[badge_php_version]:https://img.shields.io/packagist/php-v/avto-dev/data-migrations-laravel.svg?longCache=true\n[badge_build_status]:https://img.shields.io/github/actions/workflow/status/avto-dev/data-migrations-laravel/tests.yml\n[badge_coverage]:https://img.shields.io/codecov/c/github/avto-dev/data-migrations-laravel/master.svg?maxAge=60\n[badge_downloads_count]:https://img.shields.io/packagist/dt/avto-dev/data-migrations-laravel.svg?maxAge=180\n[badge_license]:https://img.shields.io/packagist/l/avto-dev/data-migrations-laravel.svg?longCache=true\n[badge_release_date]:https://img.shields.io/github/release-date/avto-dev/data-migrations-laravel.svg?style=flat-square\u0026maxAge=180\n[badge_commits_since_release]:https://img.shields.io/github/commits-since/avto-dev/data-migrations-laravel/latest.svg?style=flat-square\u0026maxAge=180\n[badge_issues]:https://img.shields.io/github/issues/avto-dev/data-migrations-laravel.svg?style=flat-square\u0026maxAge=180\n[badge_pulls]:https://img.shields.io/github/issues-pr/avto-dev/data-migrations-laravel.svg?style=flat-square\u0026maxAge=180\n[link_releases]:https://github.com/avto-dev/data-migrations-laravel/releases\n[link_packagist]:https://packagist.org/packages/avto-dev/data-migrations-laravel\n[link_build_status]:https://github.com/avto-dev/data-migrations-laravel/actions\n[link_coverage]:https://codecov.io/gh/avto-dev/data-migrations-laravel/\n[link_changes_log]:https://github.com/avto-dev/data-migrations-laravel/blob/master/CHANGELOG.md\n[link_issues]:https://github.com/avto-dev/data-migrations-laravel/issues\n[link_create_issue]:https://github.com/avto-dev/data-migrations-laravel/issues/new/choose\n[link_commits]:https://github.com/avto-dev/data-migrations-laravel/commits\n[link_pulls]:https://github.com/avto-dev/data-migrations-laravel/pulls\n[link_license]:https://github.com/avto-dev/data-migrations-laravel/blob/master/LICENSE\n[getcomposer]:https://getcomposer.org/download/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favto-dev%2Fdata-migrations-laravel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Favto-dev%2Fdata-migrations-laravel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favto-dev%2Fdata-migrations-laravel/lists"}