viOSYS / vio-db-migration
Shopware 插件,用于应用项目特定的数据库更新
v2.3.4
2020-12-04 10:49 UTC
Requires
- php: ^5.6.4||^7.0
- composer/installers: ~1.0
README
Shopware 插件,用于应用项目特定的数据库更新
设置
Git 版本
- 在
/custom/plugins/VioDbMigration
中检出插件 - 切换到目录并运行
composer install
以安装依赖项 - 使用插件管理器安装插件
使用 composer 安装
- 切换到您的 shopware 根安装目录
- 运行命令
composer require viosys/vio-db-migration
并使用插件管理器安装和激活插件
安装并激活插件
- 要使用构建过程安装插件,我们已添加一个 安装脚本
- 您可以在您的 ant-build 或 composer post-update 脚本中运行它
- 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}
- 修改
- Ant
- 当您想在 ant-build 定义中运行并添加 VioDbMigration 时发送消息
用法
- 创建空目录
vio_sql/migrations
- 使用连续数字在类名和文件名中创建迁移类,例如
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); } } }
使用预定义的迁移脚本
有一些预定义方法可以执行常见的迁移
addThemeConfigElementSql
-> 插入或更新主题配置值setConfigValue
-> 插入或更新 shop/plugin 配置值addCoreSnippets
-> 替换片段installPlugin
-> 安装插件的简写removePlugin
-> 清理删除插件的简写insertPage
-> 创建 shop 页面insertPageGroup
-> 创建 shop 页面组