luyadev / luya-module-exporter
导出模块允许您轻松下载项目中的完整数据库和存储数据,以便本地导入。
Requires
- ifsnop/mysqldump-php: 2.*
This package is not auto-updated.
Last update: 2022-02-01 12:56:15 UTC
README
此模块将不会收到未来的任何更新,也不会发布稳定版本,因为它不建议使用,请改用 luya 管理代理!
如何使用 luya 代理替代: https://luya.io/guide/concept-depandsync#sync
导出模块允许您轻松下载项目中的完整数据库和存储数据,以便进行本地导入,从而在给定时间设置网站的运行状态。
安装
将导出模块添加到您的 composer.json
"luyadev/luya-module-exporter" : "1.0.0-RC4",
按照以下方式设置您的应用程序配置
'modules' => [
// ...
'exporter' => [
'class' => 'luya\exporter\Module',
'downloadPassword' => 'EnterYourSecureRandomToken',
],
]
最后运行 ./vendor/bin/luya migrate
和 ./vendor/bin/luya import
命令。
使用导出模块
现在您可以为部署时准备下载安装 cronjob 或运行命令。
./vendor/bin/luya exporter/export
要下载上述创建的文件,请进入
https://example.com/exporter?p=EnterYourSecureRandomToken 并下载您的压缩包。
注意!HTTP嗅探器可以读取您的明文令牌。
从远程主机导入
要从远程主机导入数据库,可以使用此命令
./vendor/bin/luya exporter/database/remote-replace-local "mysql:host=localhost;dbname=REMOTE_DB_NAME" "USERNAME" "PASSWORD"
注意!此命令将删除您当前数据库中的所有表,并用远程导出替换它们。
当您无法处理用户输入的情况(如部署器任务中的链式远程批量处理)时,您可以通过添加参数 --interactive=0
来禁用安全确认。显然,这应该非常小心使用,以防止任何不希望的数据丢失。
为了您的安全,将自动创建本地数据库的数据库备份。备份可以在本地临时系统目录中找到 - 文件名类似于这样的:
uniqid() . '-BACKUP-'.time()
将导出器作为部署任务使用
当使用 LUYA 部署器时,您可能希望将远程替换本地命令添加为任务,并在部署预生产环境时执行它们。这里是一个示例,您可以在 luya 部署器文档中找到更多信息。
task('deploy:importProdDb', function() { cd('{{release_path}}'); run('./vendor/bin/luya exporter/database/remote-replace-local "mysql:host=localhost;dbname=prod_database" "USER" "PASSWORD" --interactive=0'); })->onlyOn('prep'); after('deploy:luya', 'deploy:importProdDb');