Php Laravel迁移-表前缀问题

Php Laravel迁移-表前缀问题,php,migration,laravel,laravel-3,Php,Migration,Laravel,Laravel 3,我正在建立一个虚拟站点来测试Laravel3.x 我正在创建我的站点迁移。一切正常,直到出现以下错误: SQLSTATE[42s02]: Base table or view not found: 1146 Table 'databasenamehere.prefix_laravel_migrations' doesn't exist 问题是,laravel突然开始在“laravel_migrations”表前面加前缀(而它应该只对其他表加前缀) 我想知道我是否做错了什么,或者这是一个已知的问

我正在建立一个虚拟站点来测试Laravel3.x

我正在创建我的站点迁移。一切正常,直到出现以下错误:

SQLSTATE[42s02]: Base table or view not found: 1146 Table 'databasenamehere.prefix_laravel_migrations' doesn't exist
问题是,laravel突然开始在“laravel_migrations”表前面加前缀(而它应该只对其他表加前缀)

我想知道我是否做错了什么,或者这是一个已知的问题

我正在尝试运行以下迁移(使用php artisan migrate应用程序命令):

任何帮助都会很好

编辑1:

  • 几分钟前,我注意到我的表根本没有前缀,即使在config/database.php文件中正确设置了“prefix”配置
  • 如果我删除前缀,一切正常。我知道我可以在每次运行迁移时手动设置前缀,但是

应用程序->配置->数据库.php中设置
前缀,如下所示

'mysql' => array(
'driver'   => 'mysql',
'host'     => 'localhost',
'database' => 'foodb',
'username' => 'root',
'password' => '',
'charset'  => 'utf8',
'prefix'   => 'ula_',       <-- this is where you need to set the table prefix
),
'mysql'=>数组(
“驱动程序”=>“mysql”,
'主机'=>'本地主机',
'database'=>'foodb',
'用户名'=>'根',
'密码'=>'',
“字符集”=>“utf8”,

在Laravel 5.4.*上的'prefix'=>'ula_uu',,我最终创建了artisan命令,使用下面的handle方法在某些表(非全局)上添加表前缀

public function handle()
{
    $this->tablePrefix = 'tmp_';

    // Set table prefix
    DB::setTablePrefix($this->tablePrefix);

    $data = [
        '--path' => [
            'database/prefixed-migrations' // Directory Path to migrations which require table prefix 
        ],
        '--database' => 'cli',
        '--force' => true
    ];

    $this->call('migrate', $data); // Next call the migration

    Model::reguard();
}

如果有人希望在某些表上添加前缀而不进行全局设置,希望这对他们有所帮助。

应用程序
->
配置
->
数据库.php
?我已经将我的表添加了前缀“ma”。因此,错误指向“ma\u laravel\u迁移”表,当然,不存在…这是现在一直发生的,还是仅在第五次迁移时发生的?如果回滚并再次运行迁移会发生什么情况?@darksoulsong虽然我希望在迁移中应用前缀,但我在模式源代码中找不到任何可以证实此假设的内容-也就是说我t看起来迁移/架构不尊重前缀。您第一次迁移后是否更改/设置了前缀:已安装?@PhillSparks不知道发生了什么,但我删除了所有表并重新安装了laravel迁移…现在一切看起来都很好。TYVM需要您的帮助,先生。=)
public function handle()
{
    $this->tablePrefix = 'tmp_';

    // Set table prefix
    DB::setTablePrefix($this->tablePrefix);

    $data = [
        '--path' => [
            'database/prefixed-migrations' // Directory Path to migrations which require table prefix 
        ],
        '--database' => 'cli',
        '--force' => true
    ];

    $this->call('migrate', $data); // Next call the migration

    Model::reguard();
}