ddev 当前缺少 export-db 命令(请参阅https://github.com/drud/ddev/issues/767)
如何导出数据库?
从 ddev v1.4.0 (2018-11-14) 开始,有一个ddev export-db
命令。你可以做这些事情(从ddev export-db -h
):
ddev export-db >/tmp/db.sql.gz
ddev export-db --gzip=false >/tmp/db.sql
ddev export-db -f /tmp/db.sql.gz
此外,不要忘记ddev snapshot
,这是一种快速转储数据库的好方法,但它不像基于文本的转储那样可移植。(见ddev snapshot -h
和ddev restore-snapshot -h
。)
容器内技术的原始答案: 我总是这样做:
ddev ssh
mkdir /var/www/html/.tarballs
mysqldump db | gzip >/var/www/html/.tarballs/db.sql.gz
# or with explicit authentication
mysqldump -udb -pdb -hdb db | gzip >/var/www/html/.tarballs/db.sql.gz
或者对于 Drupal/drush 用户:
ddev ssh
drush sql-dump --gzip >.tarballs/my-project-db.sql.gz
这会将转储放在项目的 .tarballs 目录中供以后使用(它在主机上)。
但是,我期待export-db 命令到达这里。
另请注意,从 v1.1.0 开始,您可以使用该ddev snapshot
命令将数据库副本保存在 .ddev/db_snapshots 目录中。它不是文本 .sql.gz 文件,但它是一个很好的保存数据库。
我认为拥有 TYPO3 挂件非常有用,感谢 Outdoorsman 对上述 GitHub 问题的评论。
户外人写道:
我来自 TYPO3 CMS 世界,也同意这将是一件好事。我目前使用
ddev ssh and ./vendor/bin/typo3cms database:export | gzip > project_name_db.sql.gz
如果通过 composer 安装了typo3_console 扩展。
你也可以使用Drupal 控制台:
ddev start
ddev ssh
drupal database:dump
drupal database:restore --file db-2018-07-04-11-31-22.sql
为了更多地解释@rfay的答案,我通常更喜欢drush cli
它,但是,它基于偏好。
ddev start
ddev ssh
drush sql:dump --result-file=../db-export.sql