viOSYS/vio-db-migration

Shopware 插件,用于应用项目特定的数据库更新

安装次数: 1

依赖者: 0

建议者: 0

安全性: 0

星级: 1

关注者: 2

分支: 0

开放问题: 0

类型:shopware-plugin

v2.3.4 2020-12-04 10:49 UTC

This package is auto-updated.

Last update: 2024-09-04 19:40:28 UTC


README

Shopware 插件,用于应用项目特定的数据库更新

设置

Git 版本

  • /custom/plugins/VioDbMigration 中检出插件
  • 切换到目录并运行 composer install 以安装依赖项
  • 使用插件管理器安装插件

使用 composer 安装

  • 切换到您的 shopware 根安装目录
  • 运行命令 composer require viosys/vio-db-migration 并使用插件管理器安装和激活插件

安装并激活插件

  • 要使用构建过程安装插件,我们已添加一个 安装脚本
  • 您可以在您的 ant-build 或 composer post-update 脚本中运行它
  1. Composer
    • 修改 app/post-update.sh 中的存储库版本
    • 在迁移控制台命令之前添加以下行
    /usr/bin/env php $(dirname "$0")/../custom/project/VioDbMigration/deploy.php --dbhost ${DB_HOST} --dbname ${DB_DATABASE} --dbuser ${DB_USERNAME} --dbpassword ${DB_PASSWORD} --migrationpath ${VIO_MIGRATIONPATH} --migrationnamespace ${VIO_MIGRATIONNAMESPACE}
  2. Ant
    • 当您想在 ant-build 定义中运行并添加 VioDbMigration 时发送消息

用法

  1. 创建空目录 vio_sql/migrations
  2. 使用连续数字在类名和文件名中创建迁移类,例如 100-migration.php
<?php

class Migrations_Migration100 extends \VioDbMigration\Components\Migrations\VioAbstractMigration
{
    public function up($modus)
    {
        $sql = "INSERT INTO ...";
        $this->addsql($sql);
    }
}

功能

定义依赖的迁移

要定义依赖的 Shopware 迁移,可以覆盖 getDependendSwMigrationStep 方法。这将确保迁移在定义的迁移之后直接执行

public function getDependendSwMigrationStep()
{
    return \Migrations_Migration920::class;
}

使用依赖注入容器

在 VioDbMigration 中,您可以使用依赖注入容器。例如,安装插件。

public function up($modus)
{
    $pm = $this->container->get('shopware_plugininstaller.plugin_manager');
    $pm->refreshPluginList();
    $VioVariantFilter = $pm->getPluginByName('FroshProfiler');
    if($VioVariantFilter){
        if($VioVariantFilter->getInstalled()){
            $pm->uninstallPlugin($VioVariantFilter);
        }
    }
}

使用预定义的迁移脚本

有一些预定义方法可以执行常见的迁移

  1. addThemeConfigElementSql -> 插入或更新主题配置值
  2. setConfigValue -> 插入或更新 shop/plugin 配置值
  3. addCoreSnippets -> 替换片段
  4. installPlugin -> 安装插件的简写
  5. removePlugin -> 清理删除插件的简写
  6. insertPage -> 创建 shop 页面
  7. insertPageGroup -> 创建 shop 页面组