youwe / pimcore5deployment
修复pimcore部署问题
Requires
- pimcore/core-version: >=5.1.0
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