Laravel 5.2:重新安装后,Homestead provisioning返回数据库已存在错误

时间:2016-04-11 17:56:52

标签: php virtualbox laravel-5.2 homestead vagrant-provision

我认为我误解了Homestead的工作方式。我想要per project installation,但发生了一些奇怪的事情。我的步骤是:

  1. 运行vagrantbox(流浪者)。数据库家园创建。 Up&运行
  2. 停止vagrantbox(流浪汉停止)
  3. 从VirtualBox客户端删除框。
  4. 再次跑出流浪汉。当然,需要下载框。
  5. 在" up"过程中,我收到错误:

    createdb:数据库创建失败:错误:数据库"宅基地"已存在

  6. 怎么可能? vagrant是否在我的主机中的某个位置创建数据库并将其重新用于不同的安装?

    我的主机是Mac OS X机器(El Capitan)。我使用

    生成了Vagrantfile
    curl -X GET 'http://localhost:9200/foo/_search' -d '
    {
        "query": {
            "bool" :
            {
                "must" :
                {
                    "query" : {
                        "match" :
                        {
                            "_all":
                            {
                                "query" : "test"
                            }
                        }
                    }
                },
                "filter":
                {
                    "bool":
                    {
                        "should":
                        [{
                            "bool" : {
                                'must':
                                [{
                                    "type":
                                    {
                                        "value": "media"
                                    }
                                },
                                {
                                    'bool':
                                    {
                                        "should" : [
                                            { "term" : {"UID" : 2}}, 
                                            { "term" : {"type" : "public"}}
                                        ]
                                    }
                                }]
                            }
                        },
                        {
                            "bool" : {
                                "should" : [
                                            { "type" : {"value" : "group"}}, 
                                            { "type" : {"value" : "user"}} 
                                        ]
                            }
                        }]
                    }
                }
            }
        }
    }'
    

    我的Vagrantfile是:

    php vendor/bin/homestead make
    

    和我的Homestead.yaml

    require 'json'
    require 'yaml'
    
    VAGRANTFILE_API_VERSION ||= "2"
    confDir = $confDir ||= File.expand_path("vendor/laravel/homestead", File.dirname(__FILE__))
    
    homesteadYamlPath = "Homestead.yaml"
    homesteadJsonPath = "Homestead.json"
    afterScriptPath = "after.sh"
    aliasesPath = "aliases"
    
    require File.expand_path(confDir + '/scripts/homestead.rb')
    
    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
        if File.exists? aliasesPath then
            config.vm.provision "file", source: aliasesPath, destination: "~/.bash_aliases"
        end
    
        if File.exists? homesteadYamlPath then
            Homestead.configure(config, YAML::load(File.read(homesteadYamlPath)))
        elsif File.exists? homesteadJsonPath then
            Homestead.configure(config, JSON.parse(File.read(homesteadJsonPath)))
        end
    
        if File.exists? afterScriptPath then
            config.vm.provision "shell", path: afterScriptPath
        end
    end
    

1 个答案:

答案 0 :(得分:1)

我发现如果我进入机器,我必须手动运行以下脚本来运行迁移脚本。

php artisan migrate

不确定宅基地安装脚本为何没有启动此迁移脚本。