Php Laravel迁移-表前缀问题
我正在建立一个虚拟站点来测试Laravel3.x 我正在创建我的站点迁移。一切正常,直到出现以下错误: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”表前面加前缀(而它应该只对其他表加前缀) 我想知道我是否做错了什么,或者这是一个已知的问
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();
}