Я пользовался Homestead много лет и сегодня заметил очень привлекательную функцию, которой никогда не пользовался раньше.
https://laravel.com/docs/7.x/homestead#database -snapshots говорит:
Homestead поддерживает замораживание состояния баз данных MySQL и MariaDB и ветвление между ними с помощью Logical MySQL Manager. Например, представьте, что вы работаете на сайте с базой данных в несколько гигабайт. Вы можете импортировать базу данных и сделать снимок. После некоторой работы и локального создания тестового контента вы можете быстро восстановить исходное состояние.
...
Общий рабочий процесс выглядит следующим образом:
- Импорт базы данных в ветку
master
lmm по умолчанию. - Сохранить снимок неизмененной базы данных, используя
sudo lmm branch prod-YYYY-MM-DD
. - Изменить базу данных.
- Запустите
sudo lmm merge prod-YYYY-MM-DD
, чтобы отменить все изменения. - Запустите
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, но не понимаю.