youwe/pimcore5deployment

修复pimcore部署问题

安装3,688

依赖: 0

建议者: 0

安全: 0

星星: 1

关注者: 12

分支: 0

开放问题: 0

类型:pimcore-bundle

0.16 2018-10-03 14:33 UTC

This package is auto-updated.

Last update: 2024-09-09 23:17:00 UTC


README

版本:Pimcore 5

注意:不兼容低于5.0的Pimcore版本

开发者:Youwe (Manea, Roelf)

摘要

  • 总是在本地开发您的pimcore项目,然后像专业人士一样将它们部署到服务器上?
  • 不喜欢在部署更改后的类之后手动保存每个服务器上的所有对象类?
  • 喜欢使用pimcore更高效和专业地工作?

...那么这个扩展就是为您准备的!

描述

pimcore部署扩展具有以下一般功能:

  • 提供一种迁移pimcore对象类数据结构的方式
  • 提供一种使服务器上的静态数据表保持同步的方式
  • 在部署时导入一些自定义的静态sql文件
  • 提供一种将静态文档数据迁移到服务器的方式(进行中)

使用方法和示例

更改或添加pimcore对象类后,使用以下命令行命令导出更新的定义

导出所有pimcore类

./htdocs/plugins/Deployment/cli/export-definition.sh

导出一些选定的pimcore类

./htdocs/plugins/Deployment/cli/export-definition.sh -c product,persom

当项目在新的开发系统上设置完毕,或者项目已部署到服务器时。使用以下命令让pimcore更新与对象类相关的文件和数据库结构

导入所有json定义

./htdocs/plugins/Deployment/cli/import-definition.sh

导入一些选定的json定义

./htdocs/plugins/Deployment/cli/import-definition.sh -c product,persom

在数据库中删除所有视图(以及应该为视图的表)。通常在完全导入定义之前执行此操作。

删除所有

./htdocs/plugins/Deployment/cli/drop-views.sh

按名称删除选定的

./htdocs/plugins/Deployment/cli/drop-views.sh -c product,persom

按ID删除选定的

./htdocs/plugins/Deployment/cli/drop-views.sh -i 2,5,6

清除数据库中的类表。当导出的定义中的类ID与数据库中已有的不匹配时,可以使用。请谨慎使用。

./htdocs/plugins/Deployment/cli/clear-classes.sh

如果某些表包含在开发时实际管理的静态数据,并且不应该由客户端在服务器上更改,则可以使用静态数据导出器/导入器

在pimcore中配置哪些表是静态的,请使用“额外”->“扩展”->“部署配置”。在更改表数据后在您的开发站上运行此命令

./htdocs/plugins/Deployment/cli/export-staticdata.sh

在部署后在服务器上运行此命令(自动)。警告:这将完全替换表中的所有数据

./htdocs/plugins/Deployment/cli/import-staticdata.sh

导入所有自定义布局json定义

./htdocs/plugins/Deployment/cli/import-customlayouts.sh

导出所有自定义布局json定义

./htdocs/plugins/Deployment/cli/export-customlayouts.sh

导入所有自定义sql文件

./htdocs/plugins/Deployment/cli/import-customsql.sh

部署到服务器

在将项目部署到服务器时,部署脚本通常会部署更新代码后执行以下命令

./vendor/youwe/pimcore5deployment/bin/clear-classes.sh
./vendor/youwe/pimcore5deployment/bin/import-field-collection.sh
./vendor/youwe/pimcore5deployment/bin/import-definition.sh
./vendor/youwe/pimcore5deployment/bin/import-customlayout.sh
./vendor/youwe/pimcore5deployment/bin/import-bricks.sh
./vendor/youwe/pimcore5deployment/bin/import-field-collection.sh
./vendor/youwe/pimcore5deployment/bin/import-staticdata.sh
./vendor/youwe/pimcore5deployment/bin/import-customsql.sh

注意:import-field-collection会执行两次,因为定义和字段集合相互引用。非常重要,必须按此顺序运行两次!

初始(首次)部署到服务器[不相关,直到内容迁移工作完成]

小心不要在您的服务器上安装此插件,因为它会使用临时ID为自己生成一个pimcore表。而是遵循以下方法

  • 在您的开发机器上启用插件并安装插件(从“额外”->“扩展”菜单)。
  • 这将生成一个名为DeploymentDataMigration的pimcore数据表
  • 完成后,使用导出定义命令将所有pimcore数据表定义导出到json文件。
  • 现在您将在服务器上运行导入定义命令,并将从json文件生成所有数据表。
  • 插件将自动启用。
  • 通过从json文件创建数据表,同时也创建了DeploymentDataMigration数据表。
  • 这意味着插件已安装。

从ini文件更新system.php和config.php [未升级到pimcore 5 - 不确定是否必要]

System.php可以使用以下方式更新

    ./plugins/PimcoreDeployment/cli/update-mysql-credentials.sh --mysql-credentials-path [PATH_TO_INI_FILE] 

我们期望的ini文件结构如下

 * mysql_hostname=[HOSTNAME]
 * mysql_port=[PORT]
 * mysql_database=[DATABASE_NAME]
 * mysql_user=[DATABASE_USERNAME]
 * mysql_password=[DATABASE_PASSWORD]
 

Cache.php可以使用以下方式更新

    ./plugins/PimcoreDeployment/cli/update-redis-credentials.sh --redis-credentials-path [PATH_TO_INI_FILE] 

我们期望的ini文件结构如下

 * redis_hostname=[HOSTNAME]
 * redis_port=[PORT]
 * redis_database=[DATABASE]
 

请注意,由于许多环境没有cache.php,该命令将为您创建一个默认的,并从ini文件更新其值

故障排除

在导入定义之前,您可能需要设置正确的权限,以便此脚本能够写入定义文件。在本地开发的情况下,可以使用以下低安全解决方案

sudo chmod -R 777 .

安装

可以通过composer安装插件。将json添加到您的composer.json中

composer require youwe/pimcore5deployment 

插件开发

要创建新版本,请在某处检出master分支,然后执行以下操作

git tag
git tag 0.xxx         (minor update = latest tag + 0.1)
git push origin --tags