Как я могу получить рабочие снимки базы данных Laravel 7 Homestead? - PullRequest
0 голосов
/ 10 марта 2020

Я пользовался Homestead много лет и сегодня заметил очень привлекательную функцию, которой никогда не пользовался раньше.

https://laravel.com/docs/7.x/homestead#database -snapshots говорит:

Homestead поддерживает замораживание состояния баз данных MySQL и MariaDB и ветвление между ними с помощью Logical MySQL Manager. Например, представьте, что вы работаете на сайте с базой данных в несколько гигабайт. Вы можете импортировать базу данных и сделать снимок. После некоторой работы и локального создания тестового контента вы можете быстро восстановить исходное состояние.

...

Общий рабочий процесс выглядит следующим образом:

  1. Импорт базы данных в ветку master lmm по умолчанию.
  2. Сохранить снимок неизмененной базы данных, используя sudo lmm branch prod-YYYY-MM-DD.
  3. Изменить базу данных.
  4. Запустите sudo lmm merge prod-YYYY-MM-DD, чтобы отменить все изменения.
  5. Запустите sudo lmm delete <branch>, чтобы удалить ненужные ветви.

Этот инструмент звучит очень полезно, но у меня возникают проблемы с выполнением этих инструкций. Вот что я попробовал и результаты:

sudo lmm status
Active snapshot:

Database snapshots:
  master

2.70% used by MySQL databases.
sudo lmm branch beforeImports
df: '': No such file or directory
  Logical volume name "" is invalid.
  Run `lvcreate --help' for more information.
mount: /homestead-vg/beforeImports: special device /dev/homestead-vg/mysql-beforeImports does not exist.
mount: /homestead-vg/beforeImports: special device /dev/homestead-vg/mysql-beforeImports does not exist.
mount: /homestead-vg/prod-YYYY-MM-DD: special device /dev/homestead-vg/mysql-prod-YYYY-MM-DD does not exist.
mount: /homestead-vg/beforeImports: special device /dev/homestead-vg/mysql-beforeImports does not exist.
sudo lmm checkout master
is the currently active database.
Setting /homestead-vg/master as the active database.
rm: cannot remove '/var/lib/mysql': Is a directory
ln: failed to create symbolic link '/var/lib/mysql/master': File exists

Я использую: Windows 10, Vagrant 2.2.7, Virtualbox 6.1.2, Homestead v10.2.0.

Что я делаю не так?

PS Я посмотрел на https://github.com/Lullabot/lmm/blob/ubuntu-18.04/functions.sh#L5 (что, я думаю, то, что использует Homestead), а затем я запустил sudo echo `readlink /var/lib/mysql`, и это напечатал пустую строку. Но sudo ls -lah /var/lib/mysql показывает много файлов. Я явно не знаю, что делаю, и буду признателен за любую помощь.

PPS Я также вижу https://github.com/laravel/homestead/issues/1112, но не понимаю.

1 Ответ

0 голосов
/ 16 апреля 2020

Была ошибка, из-за которой LMM не работал с MySQL 8: https://github.com/laravel/homestead/issues/1383

...