Amy*_*ley 4 mariadb laravel laravel-5.5
我正在尝试在 Laravel 5.5 中编写 PHPUnit 测试用例。我想将迁移作为该过程的一部分。我的用户迁移脚本实际上创建了一个视图,而不是表。似乎所有其他普通表都按预期创建和删除。但用户的看法却并非如此。有什么想法吗?我可以在 PHPMyAdmin 中手动运行 DROP 语句。这是我的迁移脚本:
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration
{
public function up()
{
DB::statement("
CREATE VIEW users AS
(
SELECT
PD.ID AS id,
PCI.Username AS username,
PCI.Username AS first_name
FROM table1.Person PD
LEFT JOIN table2.Contact PCI ON PCI.ID = PD.ID
)
");
}
public function down()
{
DB::statement("DROP VIEW users");
}
}
Run Code Online (Sandbox Code Playgroud)
是的,这是Laravel github中的一个开放问题。对我有用的建议解决方法是将迁移文件中的 CREATE VIEW 替换为 CREATE OR REPLACE。所以完整的 up() 函数将是:
public function up()
{
DB::statement("
CREATE OR REPLACE VIEW users AS
(
SELECT
PD.ID AS id,
PCI.Username AS username,
PCI.Username AS first_name
FROM table1.Person PD
LEFT JOIN table2.Contact PCI ON PCI.ID = PD.ID
)
");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
833 次 |
| 最近记录: |