【发布时间】:2020-06-02 19:53:59
【问题描述】:
我正在运行 Homestead v8.2.0 和 laravel/homestead (virtualbox, 7.1.0) 和 Vagrant 2.2.4。我需要升级,因为我想要 PHP 7.4 支持。
Laravel docs 说有必要先销毁vagrant box,但我知道我不想破坏我原来的box,因为我里面还有有价值的数据。所以我想我会尝试仅仅“更新”它,以防万一。
(我非常小心不使用destroy,因为我不想丢失我的任何 MySQL 数据库。)
当我跑vagrant global-status时,我看到了:
id name provider state directory
------------------------------------------------------------------------------
5620b14 vboxHomestead virtualbox running C:/code/Homestead
所以我使用 git 来检查 Homestead 的 v10.2.0。
我跑了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 数据库丢失了!
但这没有任何意义,因为我从未删除过它们。而且我从未破坏过盒子(我仍然可以在旧的C:/code/Homestead 和vagrant ssh 中运行vagrant up)。而且我认为vagrant box update 也不会删除 MySQL 数据库。
它们在哪里,我该如何找回它们?
更新以响应https://stackoverflow.com/a/60411945/470749
myuser@ABCDESK MINGW64 /c/code/Homestead ((v10.2.0))
$ vagrant box list
laravel/homestead (virtualbox, 5.2.0)
laravel/homestead (virtualbox, 6.0.0)
laravel/homestead (virtualbox, 7.1.0)
laravel/homestead (virtualbox, 9.2.0)
redash/dev (virtualbox, 0.1.0)
$ VBoxManage list vms
"Redash" {29166fde-e0bf-4f31-8efc-58a66afd78e5}
"redash_default_1502117350190_63240" {0b5935af-288a-4e4d-aa8a-ee04f42e3235}
"macOS 10.12 High Sierra" {37b09cb2-10cd-4e1a-8e2c-aefdb1a348c6}
"macOS Sierra" {f010233b-d058-4a6e-9493-5c4d68e99ef1}
"macOS High Sierra 10.13" {741f0d4d-7f16-4f42-993b-4d301ef68125}
"default" {f3e8f33d-0ca3-452d-9ae6-d93e5e412fbb}
"vboxHomestead" {0706d0b0-d31b-4137-9e97-f86b827f1530}
"vboxHomestead2020-01-31" {1ef6f202-9d81-4d41-a4b9-adaab7b12014}
$ ls -lah /c/code/Homestead/.vagrant/machines/
total 0
drwxr-xr-x 1 myuser 197121 0 Aug 27 2017 ./
drwxr-xr-x 1 myuser 197121 0 Apr 8 2019 ../
drwxr-xr-x 1 myuser 197121 0 Apr 4 2017 homestead-7/
drwxr-xr-x 1 myuser 197121 0 Aug 27 2017 vboxHomestead/
$ ls -lah /c/code/HomesteadB/.vagrant/machines/
total 0
drwxr-xr-x 1 myuser 197121 0 Jan 31 09:36 ./
drwxr-xr-x 1 myuser 197121 0 Jan 31 09:25 ../
drwxr-xr-x 1 myuser 197121 0 Jan 31 09:25 homestead-7/
drwxr-xr-x 1 myuser 197121 0 Jan 31 09:25 vboxHomestead/
drwxr-xr-x 1 myuser 197121 0 Jan 31 09:36 vboxHomestead2020-01-31/
$ ls -lah /c/code/Homestead/.vagrant/machines/vboxHomestead/virtualbox/
total 19K
drwxr-xr-x 1 myuser 197121 0 Apr 8 2019 ./
drwxr-xr-x 1 myuser 197121 0 Aug 27 2017 ../
-rw-r--r-- 1 myuser 197121 40 Apr 8 2019 action_provision
-rw-r--r-- 1 myuser 197121 10 Feb 18 12:20 action_set_name
-rw-r--r-- 1 myuser 197121 138 Feb 18 11:44 box_meta
-rw-r--r-- 1 myuser 197121 1 Apr 8 2019 creator_uid
-rw-r--r-- 1 myuser 197121 36 Apr 8 2019 id
-rw-r--r-- 1 myuser 197121 32 Apr 8 2019 index_uuid
-rw-r--r-- 1 myuser 197121 1.7K Apr 8 2019 private_key
-rw-r--r-- 1 myuser 197121 653 Feb 18 12:22 synced_folders
-rw-r--r-- 1 myuser 197121 17 Apr 8 2019 vagrant_cwd
$ ls -lah /c/code/HomesteadB/.vagrant/machines/vboxHomestead/virtualbox/
total 19K
drwxr-xr-x 1 myuser 197121 0 Jan 31 09:25 ./
drwxr-xr-x 1 myuser 197121 0 Jan 31 09:25 ../
-rw-r--r-- 1 myuser 197121 40 Jan 31 09:25 action_provision
-rw-r--r-- 1 myuser 197121 10 Jan 31 09:26 action_set_name
-rw-r--r-- 1 myuser 197121 138 Jan 31 09:25 box_meta
-rw-r--r-- 1 myuser 197121 1 Jan 31 09:25 creator_uid
-rw-r--r-- 1 myuser 197121 36 Jan 31 09:25 id
-rw-r--r-- 1 myuser 197121 32 Jan 31 09:25 index_uuid
-rw-r--r-- 1 myuser 197121 1.7K Jan 31 09:25 private_key
-rw-r--r-- 1 myuser 197121 653 Jan 31 09:25 synced_folders
-rw-r--r-- 1 myuser 197121 18 Jan 31 09:25 vagrant_cwd
$ ls -lah /c/code/HomesteadB/.vagrant/machines/vboxHomestead2020-01-31/virtualbox/
total 19K
drwxr-xr-x 1 myuser 197121 0 Jan 31 09:37 ./
drwxr-xr-x 1 myuser 197121 0 Jan 31 09:36 ../
-rw-r--r-- 1 myuser 197121 40 Jan 31 09:37 action_provision
-rw-r--r-- 1 myuser 197121 10 Feb 24 18:45 action_set_name
-rw-r--r-- 1 myuser 197121 138 Feb 4 11:56 box_meta
-rw-r--r-- 1 myuser 197121 1 Jan 31 09:36 creator_uid
-rw-r--r-- 1 myuser 197121 36 Jan 31 09:36 id
-rw-r--r-- 1 myuser 197121 32 Jan 31 09:36 index_uuid
-rw-r--r-- 1 myuser 197121 1.7K Jan 31 09:37 private_key
-rw-r--r-- 1 myuser 197121 654 Feb 24 18:46 synced_folders
-rw-r--r-- 1 myuser 197121 18 Jan 31 09:36 vagrant_cwd
$ cat /c/code/HomesteadB/.vagrant/machines/vboxHomestead2020-01-31/virtualbox/id
1ef6f202-9d81-4d41-a4b9-adaab7b12014
$ cat /c/code/HomesteadB/.vagrant/machines/vboxHomestead/virtualbox/id
0706d0b0-d31b-4137-9e97-f86b827f1530
$ cat /c/code/Homestead/.vagrant/machines/vboxHomestead/virtualbox/id
0706d0b0-d31b-4137-9e97-f86b827f1530
【问题讨论】:
-
使用 SequelPro 等 gui 工具检查您的盒子数据库。如果存在,将数据导出到安全的地方,然后升级box并导入db。我不是宅基地用户,但在日常任务中,我使用我们在销毁命令之前添加的 vagrant 框来备份数据库。
-
你有数据库备份吗?
-
@Tarasovych 不,所以我的问题。
-
你的数据库在旧盒子里吗?
-
@Tarasovych 不,这就是为什么我发布这个问题以及为什么它说“我注意到 MySQL 数据库丢失了”。
标签: laravel vagrant virtualbox homestead