dantleech/ phpcr-migrations-bundle
1.3.0
2022-05-02 16:07 UTC
Requires
- php: ^7.2 || ^8.0
- doctrine/phpcr-bundle: ^1.3 || ^2.0
- phpcr/phpcr-implementation: ^2.1
- phpcr/phpcr-migrations: ^1.1
- symfony/config: ^4.4 || ^5.4 || ^6.0
- symfony/console: ^4.4 || ^5.4 || ^6.0
- symfony/dependency-injection: ^4.4 || ^5.4 || ^6.0
- symfony/http-kernel: ^4.4 || ^5.4 || ^6.0
Requires (Dev)
- doctrine/doctrine-bundle: ^1.8 || ^2.0
- doctrine/phpcr-odm: ^1.4
- symfony-cmf/testing: ^2.1 || ^3.0 || ^4.0
- symfony/monolog-bundle: ^2.0 || ^3.0
- symfony/phpunit-bridge: ^5.4 || ^6.0
- symfony/symfony: ^4.4 || ^5.4 || ^6.0
Conflicts
- symfony/symfony: 3.4.15
README
此库为PHPCR 迁移库提供了 Symfony 集成。
此版本已存档
此包已重命名为phpcr/phpcr-migrations-bundle。我们建议更新依赖项以获取最新版本。
dantleech/phpcr-migrations-bundle
将保持可用,但不进行维护。
配置
配置迁移路径
# app/config.yml phpcr_migrations: paths: [%kernel.root_dir%/phpcr-migrations]
或者,包将自动检索内核中注册的任何包中Resources/phpcr-migrations
文件夹中的任何迁移。
创建迁移
首先创建两个新的迁移文件
<?php // app/phpcr-migrations/Version201501011200.php use PHPCR\SessionInterface; use PHPCR\Migrations\VersionInterface; class Version201501011200 implements VersionInterface { public function up(SessionInterface $session) { $session->getRootNode()->addNode('hello'); } public function down(SessionInterface $session) { $session->getRootNode()->getNode('hello')->remove(); } }
和
<?php // app/phpcr-migrations/Version201501011212.php use PHPCR\SessionInterface; use PHPCR\Migrations\VersionInterface; class Version201501011212 implements VersionInterface { public function up(SessionInterface $session) { $session->getNode('/hello')->addNode('world'); } public function down(SessionInterface $session) { $session->getNode('/hello')->getNode('world')->remove(); } }
迁移状态
请注意,迁移必须命名为以下格式:VersionYYYMMDDHHSS
。如果它们不是这样命名的,则不会被检测到。时间戳应为当前日期(在此示例中为2015/01/01 12:00
)。
现在执行phpcr:migrations:status
命令
$ php app/console phpcr:migrations:status +--+---------------+------------------+----------+----------------------------------------------+ | | Version | Date | Migrated | Path | +--+---------------+------------------+----------+----------------------------------------------+ | | 201501011200 | 2015-01-01 12:00 | NO | app/phpcr-migrations/Version201501011200.php | | | 201501011212 | 2015-01-01 12:12 | NO | app/phpcr-migrations/Version201501011212.php | +--+---------------+------------------+----------+----------------------------------------------+ No migrations have been executed
执行迁移
现在我们可以运行迁移
$ php app/console phpcr:migrations:migrate Upgrading 2 version(s): + [1/2]: 201501011200 + [2/2]: 201501011212
这应该运行两个迁移,您的状态应该看起来不像这样
回滚
您现在可以按照以下方式回滚到第一个版本
$ php app/console phpcr:migrations:migrate 201501011200 Reverting 1 version(s): - [1/4]: V201501011212
操作
除了指定版本,您还可以指定操作
$ php app/console phpcr:migrations:migrate up Upgrading 1 version(s): - [1/4]: V201501011212
操作包括
up
:升级一个版本down
:回滚一个版本top
:迁移到最新版本bottom
:回滚所有迁移