在Laravel 5.5迁移中,MySQL视图不会丢失

时间:2017-11-09 16:32:45

标签: laravel mariadb 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");
  }
}

1 个答案:

答案 0 :(得分:2)

是的,这是Laravel github中的一个未解决的问题。对我有用的建议解决方法是使用CREATE OR REPLACE替换我的迁移文件中的CREATE VIEW。所以完整的up()函数将是:

<script>
$(document).on('click', '#submit', function(event) {
  event.preventDefault();

  $.ajax({

    url: 'likesystem.php',
    type: 'POST',
    data: $('#like').serialize(),

  });

  event.stopPropagation();

});
</script>