rhubarbphp / scaffold-database-migrations
数据库迁移的Module.Migrations实现
1.0.2
2018-10-10 16:28 UTC
Requires
Requires (Dev)
- codeception/codeception: 2.3.*
- codeception/verify: ^1.0
- phpunit/phpunit: ^6.5
- rhubarbphp/module-migrations: *
This package is auto-updated.
Last update: 2024-09-11 15:13:12 UTC
README
此脚手架是对Migrations模块的特定实现。它包括
DatabaseMigrationsStateProvider
,它使用Stem存储应用程序的本地状态。
DataMigrationScript
是MigrationScriptInterface的实现,提供了额外的辅助方法以执行常见的数据迁移。
脚本注册
除非注册,否则脚本不会运行。可以在MigrationsModule上调用registerMigrationScripts($scriptsArray)
来注册脚本。
MigrationsManager::getMigrationsManager()->registerMigrationScripts([ SplitNameColumnScript::class, DeleteAllImagesScript::class, UpdatedGdprInfoScript::class ]);
数据迁移脚本
DataMigrationScripts实现了MigrationsScriptInterface,并在脚本执行期间包含可调用的常见迁移类型。
class ContactNameSplitting extends DataMigrationScript { public function execute() { foreach (Image::all(new Equals('active', false)) as $image) { unlink($image->filePath); $image->delete(); } try { $this->updateEnumOption( User::class, 'status', 'on line', 'online' ); } catch (\Rhubarb\Crown\Exceptions\ImplementationException $e) { } } public function version(): int { return 18; } public function priority(): int { return 10; } }