wilr/silverstripe-tasker

安装数: 4,477

依赖者: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 1

开放问题: 0

类型:silverstripe-vendormodule

1.1.0 2021-05-27 23:25 UTC

This package is auto-updated.

Last update: 2024-09-23 06:03:40 UTC


README

一个包含 Silverstripe BuildTask 类和标准辅助程序的集合,用于管理迁移工作流程(例如从版本 3 升级到 4)。

安装

composer require wilr/silverstripe-tasker

用法

<?php

use Wilr\SilverStripe\Tasker\Traits\TaskHelpers;
use Wilr\SilverStripe\Tasker\Traits\TaskerFormatter;
use SilverStripe\Dev\BuildTask;

class MyAppUpgradeTask extends BuildTask
{
    use TaskerFormatter;
    use TaskHelpers;

    public function run()
    {
        $this->echoHeading('My Heading');
        
        $this->archivePage(10);
        
        // any other tasks as below.
        
        if ($wrong) {
            $this->echoWarning('Shows a warning message');
        } else {
            $this->echoSuccess('Outputs a tick');
        }

        while (true) {
            // displays progress dots
            $this->echoProgress();
        }
    }
}

API 文档

任务

  • migrateTableToExistingTable ($tableName, $newClass, $mapping = [], $callback = null, $insert = true)
  • archivePage($pageID)
  • runInsertOrUpdate($table, $id, $fields)
  • migrateDataColumnTo($columnFrom, $tableFrom, $columnTo, $tableTo)
  • setInvalidEnumValuesTo ($table, $column, $defaultValue)
  • correctPageClass ($id, $newClassName)
  • renameColumn ($table, $oldColumn, $newColumn, $force = false)
  • removePagesOnLiveNotOnDraft()

辅助程序

  • hasTable ($tableName)
  • query ($query)
  • tableHasCol ($table, $col)
  • echoWarning ($message)
  • echoSuccess ($message)
  • echoMessage ($message)
  • echoLine ()
  • echoProgress ()

SilverStripe 平台 / CWP 部署任务

tasker 可用于在运行 dev/build 时 'hook' 更新和其他类。为此,在您的项目中创建一个 migration.yml 文件并包含以下内容

SilverStripe\CMS\Model\SiteTree:
  migration_on_build: true
  latest_schema_version: 2
  migration_class: 'MyAppUpgradeTask'

架构版本存储在 SiteConfig 上,如果一个项目的架构版本小于此处提供的值,则 tasker 将运行提供的 migration_class

如果您有一系列需要执行的 BuildTask 任务(如 Solr_Reindex),则在 tasker_jobs 键下提供类名。

SilverStripe\CMS\Model\SiteTree:
  tasker_jobs:
    - 'SilverStripe\FullTextSearch\Solr\Tasks\Solr_Configure'
    - 'SilverStripe\FullTextSearch\Solr\Tasks\Solr_Reindex'