当我即将关闭我的主机时,我应该:
vagrant halt
Run Code Online (Sandbox Code Playgroud)
要么
vagrant suspend
Run Code Online (Sandbox Code Playgroud)
有什么不同?
我正在运行 Homestead v8.2.0laravel/homestead (virtualbox, 7.1.0)和 Vagrant 2.2.4。我需要升级,因为我想要 PHP 7.4 支持。
Laravel 文档说首先销毁 vagrant 盒子是必要的,但我知道我不想销毁我原来的盒子,因为我那里还有有价值的数据。所以我想我只会尝试“更新”它,以防万一。
(我非常小心地不使用,destroy因为我不想丢失任何 MySQL 数据库。)
当我跑步时,vagrant global-status我看到:
id name provider state directory
------------------------------------------------------------------------------
5620b14 vboxHomestead virtualbox running C:/code/Homestead
Run Code Online (Sandbox Code Playgroud)
所以我用 git 来结帐v10.2.0Homestead。
我跑了vagrant box update。鉴于 Laravel 文档,我对这种方法不起作用并不感到惊讶。
然后我想:我不会更新我当前的盒子,而是在它旁边创建一个新盒子(仍然不会破坏旧盒子)。
所以我复制C:/code/Homestead到一个新目录C:/code/HomesteadB。
我升级到 Vagrant 2.2.7。我跑了vagrant box add laravel/homestead,看到了新的laravel/homestead (virtualbox, 9.2.0)(注意更高的版本号)。我跑了vagrant up,我继续享受运行 PHP 7.4 的新机器。一切似乎都在按计划进行。
后来,当我有灵感回到我的旧盒子并恢复那里的所有旧数据时,我注意到 MySQL 数据库丢失了! …