【问题标题】:How can I add a new site to Homestead 2.0 without wiping out the pre-existing databases?如何在不清除现有数据库的情况下向 Homestead 2.0 添加新站点?
【发布时间】:2015-06-23 08:12:57
【问题描述】:

一段时间以来,我一直在为多个项目使用 Homestead 2.0,但令人沮丧的事情不断发生。每次我添加一个新站点时,它都会添加新站点和数据库,但会清除现有数据库中的数据。

我尝试了Laravel Homestead 2.0 Adding New Sites 中的步骤,但每次都得到相同的结果。

所以运行“homestead halt && homestead up --provision”或“vagrant provision”给了我同样的问题。

有什么想法吗?

【问题讨论】:

  • 您可以手动完成(创建数据库、虚拟服务器等),但这会扼杀很多使用宅基地的目的。
  • 我知道我可以添加数据库,我还没有考虑手动将它添加到 nginx。但你是对的,这确实违背了目的。
  • 我现在无法对其进行测试(所以我将其作为评论而不是作为答案发布),但请尝试转到 ~/.composer/vendor/laravel/homestead/scripts/create-mysql.sh 并将其更改为不删除您的数据库。它应该可以工作。
  • 检查this
  • @Ravan 继续提交作为答案。我将为您提供发现这一点的要点。谢谢!

标签: laravel vagrant virtual-machine virtualbox homestead


【解决方案1】:

您可以更改每次配置您的宅基地时运行的 mysql 脚本。 转到~/.composer/vendor/laravel/homestead/scripts/create-mysql.sh 并根据您的喜好进行更改。

有一个提供这种功能的拉取请求,但没有任何解释就关闭了。无论如何,您仍然可以复制它提供的逻辑:

#!/usr/bin/env bash

DB=$1;

mysql -uhomestead -psecret -e "CREATE DATABASE IF NOT EXISTS \`$DB\` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci";

Check it out here.

【讨论】:

  • 效果很好。我可能最终会为它编写自己的标志,这样它就不会擦除数据库。甚至可以在配置文件(Homestead.yaml)中添加一个标识符,然后向项目提交一个拉取请求。
猜你喜欢
  • 1970-01-01
  • 2011-01-19
  • 2018-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多