2017-25 Β© Pedro PelΓ‘ez
 

library data-migrations-laravel

Package for data migrations in laravel applications

image

avto-dev/data-migrations-laravel

Package for data migrations in laravel applications

  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 156 % Grown

The README.md

Laravel , (*1)

ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… Π‘Π” для Laravel

Version ![PHP Version][badge_php_version] Build Status ![Coverage][badge_coverage] Downloads count ![License][badge_license], (*2)

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ добавляСт Π² вашС Laravel-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» мигрирования Π΄Π°Π½Π½Ρ‹Ρ… Π‘Π”., (*3)

Install

Require this package with composer using the following command:, (*4)

$ composer require avto-dev/data-migrations-laravel "^2.4"

Installed composer is required (how to install composer)., (*5)

You need to fix the major version of package., (*6)

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² Π‘Π” для хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ миграциях, имя соСдинСния ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ настройки:, (*7)

$ php ./artisan vendor:publish --provider="AvtoDev\\DataMigrationsLaravel\\ServiceProvider"

ПослС Ρ‡Π΅Π³ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» ./config/data-migrations.php Π½Π° своё усмотрСниС ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ установку, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:, (*8)

$ php ./artisan data-migrate:install

ИспользованиС

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ - это отсутствиС встроСнного Π² Laravel ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° мигрирования "Π±ΠΎΠ΅Π²Ρ‹Ρ…" Π΄Π°Π½Π½Ρ‹Ρ… Π² вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (seeds это ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ заполнСния Ρ„Π΅ΠΉΠΊΠΎΠ²Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ, Π° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π‘Π” нСсут ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° схСму ΠΈ Ρ‚.Π΄., Π½ΠΎ Π½Π΅ Π΄Π°Π½Π½Ρ‹Π΅)., (*9)

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с "ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠΎΠΉ" Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ - вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 2 ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π‘Π” (default ΠΈ second_db), ΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ… Π² ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄Π°Π½Π½Ρ‹Π΅., (*10)

Для этого Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ 2 ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:, (*11)

$ ./artisan make:data-migration "Add some data into first table"
$ ./artisan make:data-migration --connection="second_db" "Add some data into second table"

ПослС выполнСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… создадутся 2 Ρ„Π°ΠΉΠ»Π°:, (*12)

  • ./storage/data_migrations/2018_01_01_022000_add_some_data_into_first_table.sql
  • ./storage/data_migrations/second_db/2018_01_01_022001_add_some_data_into_second_table.sql

ΠšΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ SQL-ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, производящими Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ insert-Ρ‹ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅ (ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ идСологичСски Π²Π΅Ρ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для манипуляций с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ)., (*13)

ПослС этого Π²Π°ΠΌ достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:, (*14)

$ ./artisan data-migrate

И данная ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Ρ‘Ρ‚ поиск всСх Ρ„Π°ΠΉΠ»ΠΎΠ² (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Π΅Ρ…, Ρ‡ΡŒΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Ρ‚ΠΎΡ‡ΠΊΠΈ) Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ./storage/data_migrations (ΠΏΡƒΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅) ΠΈ попытаСтся ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Ссли запись ΠΎΠ± ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ migrations_data (которая Π±Ρ‹Π»Π° создана ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ data-migrate:install)., (*15)

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ

ΠŸΡ€ΠΈ использовании Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° слСдуСт Π·Π½Π°Ρ‚ΡŒ ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… особСнностях:, (*16)

  • Если Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ-миграциями Π΄Π°Π½Π½Ρ‹Ρ… ./storage/data_migrations ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, ΠΈ ΡƒΠΆΠ΅ Π² Π½Π΅ΠΉ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»-ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ - Ρ‚ΠΎ имя этой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ использовано ΠΊΠ°ΠΊ имя ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π‘Π” (описанноС Π² Ρ„Π°ΠΉΠ»Π΅ ./config/database.php), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для примСнСния ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹;
  • Для примСнСния ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ классы, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ интСрфСйс ExecutorContract. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой, ΡƒΠΊΠ°Π·Π°Π² Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Π² Ρ„Π°ΠΉΠ»Π΅-ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ;
  • ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ gzip (gzip file.sql). ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ установлСнного php-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ zlib ΠΎΠ½ΠΈ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ "Π½Π° Π»Π΅Ρ‚Ρƒ", Π³Π»Π°Π²Π½ΠΎΠ΅ Ρ‡Ρ‚ΠΎΠ± имя Ρ„Π°ΠΉΠ»Π° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π»ΠΎΡΡŒ Π½Π° .gz;
  • ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° "ΠΎΡ‚ΠΊΠ°Ρ‚Π°" (rollback-ΠΎΠ²).

Artisan-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

ПослС установки Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π²Π°ΠΌ станут доступны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:, (*17)

Π‘ΠΈΠ³Π½Π°Ρ‚ΡƒΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ОписаниС
data-migrate:install ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ созданиС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² Π‘Π” для хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ миграциях Π΄Π°Π½Π½Ρ‹Ρ…
make:data-migration Π‘ΠΎΠ·Π΄Π°Ρ‘Ρ‚ Ρ„Π°ΠΉΠ»-ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ (пустой) Π² соотвСтствии с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ имСнования ΠΈ располоТСния
data-migrate ЗапускаСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ мигрирования Π΄Π°Π½Π½Ρ‹Ρ…
data-migrate:status Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… миграциях
data-migrate:uninstall УдаляСт Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎ миграциях Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π‘Π”

Testing

For package testing we use phpunit framework and docker-ce + docker-compose as develop environment. So, just write into your terminal after repository cloning:, (*18)

$ make build
$ make latest # or 'make lowest'
$ make test

Changes log

Release date ![Commits since latest release][badge_commits_since_release], (*19)

Changes log can be found here., (*20)

Support

Issues ![Issues][badge_pulls], (*21)

If you will find any package errors, please, make an issue in current repository., (*22)

License

This is open-sourced software licensed under the MIT License., (*23)

The Versions

10/06 2018

dev-master

9999999-dev

Package for data migrations in laravel applications

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel migration data

10/06 2018

v1.1.0

1.1.0.0

Package for data migrations in laravel applications

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel migration data

16/05 2018

v1.0.0

1.0.0.0

Package for data migrations in laravel applications

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel migration data