错误 - ... fuelPHP迁移中的数据源名称无效

时间:2012-07-17 07:35:07

标签: fuelphp

我是MAC OS和Fuel PHP的新手,我尝试学习FuelPHP,它引导我学习一些教程,你可以在这里找到链接: link

正如教程所示,通过命令行在FuelPHP中使用迁移:

oil r migrate

并且它显示了某种奇怪的错误,当我谷歌(以及教程也是如此)时,有人建议在fuel / app / config / development / db.php文件中将'localhost'更改为'127.0.0.1',错误应该消失。

然后它显示另一个错误:

ERROR - invalid data source name in COREPATH/classes/database/pdo/connection.php on line 87

虽然我已通过浏览器检查了与数据库的连接,但是连接到数据库的所有用户名和密码也都正确。我还是不知道是什么问题。请帮助和抱歉我的英语,这不是我的母语。

2 个答案:

答案 0 :(得分:1)

我认为您的问题不是数据源名称,而是环境。

您需要正确设置环境,此页面对此进行了解释:http://fuelphp.com/docs/general/environments.html

这就是我在debian中所做的事情:

env FUEL_ENV=production oil refine migrate:up

我在Windows上的开发计算机上做了什么:

set FUEL_ENV=development // One time only
oil refine migrate:up

跳它会帮助你。

答案 1 :(得分:0)

转到您的Fuel / app / bootstrap.php并查看第27 - 30行,它看起来像是这样的

Fuel::$env = (isset($_SERVER['FUEL_ENV']) ? $_SERVER['FUEL_ENV'] : Fuel::DEVELOPMENT); 

在你的情况下,如果你的Fuel :: DEVELOPMENT那么你应该(可能是FUEL::PRODUCTIONFUEL::TESTING

现在根据环境确定在文件中检查数据库连接的配置。 fuel / app / config / development / db.php

在该文件中检查数据库连接,它将有点像这样,并验证它们是否正确。

return array(
    'default' => array(
        'connection'  => array(
            'dsn'        => 'mysql:host=localhost;dbname=yourdatabasename',
            'username'   => 'yourusername',
            'password'   =>  'yourpassword',
        ),
    ),
);

我认为在您的情况下,环境集与使用的配置之间存在不匹配。

希望这有帮助