如何从 ddev 导出数据库?

How can I export a database from ddev?

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 -hddev 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 command 的到来。

另请注意,从 v1.1.0 开始,您可以使用 ddev snapshot 命令在 .ddev/db_snapshots 目录中保存数据库副本。这不是一个文本 .sql.gz 文件,但它是一个保存好的数据库。

为了进一步解释@rfay 的回答,我通常更喜欢 drush cli,但是,它基于偏好。

ddev start
ddev ssh
drush sql:dump --result-file=../db-export.sql

您也可以使用 Drupal console:

ddev start
ddev ssh    
drupal database:dump
drupal database:restore --file db-2018-07-04-11-31-22.sql

我认为拥有 TYPO3 吊坠非常有用,感谢 Outdoorsman 对上述 GitHub 问题的评论。

Outdoorsman wrote:

I'm coming from the TYPO3 CMS world and also agree this would be a good thing to have. I currently use

ddev ssh and ./vendor/bin/typo3cms database:export | gzip > project_name_db.sql.gz

if the typo3_console extension is installed via composer.