youwe / pimcore-deployment
Youwe Pimcore Deployment
Requires
- pimcore/core-version: ^4.3
- pimcore/installer-plugin: ^1.3
README
版本:Pimcore 4.x
注意:不兼容Pimcore 4以下版本
开发者:Youwe (Manea, Roelf)
参考和最新开发:Manea
摘要
- 总是本地开发您的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与数据库中已有的ID不匹配时可以使用。请谨慎使用。
./htdocs/plugins/Deployment/cli/clear-classes.sh
如果某些表包含在开发期间实际管理而未在服务器上由客户端修改的静态数据,可以使用静态数据导出/导入器
在pimcore中配置哪些表是静态的,请使用extras->extensions->deployment-configuration。在更改表数据后,在您的开发站上运行此命令。
./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
部署到服务器
当将项目部署到服务器时,部署脚本通常会执行以下命令,在部署更新的代码之后
./htdocs/plugins/Deployment/cli/import-definition.sh
./htdocs/plugins/Deployment/cli/import-staticdata.sh
./htdocs/plugins/Deployment/cli/import-customlayouts.sh
./htdocs/plugins/Deployment/cli/import-customsql.sh
(another command will be added here as soon as the document-migration is done)
首次(第一次)部署到服务器
请小心不要在您的服务器上安装此插件,因为它会使用一个临时ID为自己生成一个pimcore表。请遵循以下步骤:
- 在您的开发机器上,启用插件并在“额外->扩展”菜单中安装插件。
- 这将生成一个名为DeploymentDataMigration的pimcore数据表
- 完成此操作后,使用export-definition命令导出所有pimcore数据表定义到json文件。
- 现在您将在服务器上运行导入-定义命令,所有数据表都将从JSON文件生成。
- 插件将自动启用。
- 通过从JSON文件创建数据表,也会创建DeploymentDataMigration数据表。
- 这意味着插件已安装。
从ini文件更新system.php和config.php
可以使用以下方式更新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中
{
"config": {
"document-root-path": "htdocs"
},
"require": {
"youwe/pimcore-deployment": "^0.1.0"
},
}
在pimcore的“额外 -> 扩展”列表中激活/启用插件。
此外,将其添加到您的.gitignore中
plugins/PimcoreDeployment
插件开发
要创建新版本,请在某处检出master分支,然后进行以下操作
git tag
git tag 0.x.x (minor update = latest tag + 0.0.1)
git push origin --tags