我想使用迁移为我的数据库创建几个模式。我有以下代码:
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateSchemaAdministracion extends Migration
{
public function up()
{
DB::unprepared("CREATE SCHEMA `administracion`");
}
public function down()
{
DB::unprepared('DROP SCHEMA `administracion`');
}
}
我尝试过这种方式,但是得到了:无效的架构名称:7 ERROR: No schema has been selected
。
答案 0 :(得分:1)
尝试将DB :: statement与DB :: raw一起使用。
我使用Laravel 5.8进行了测试。我想它也应该适用于早期版本。
\DB::statement(\DB::raw("CREATE SCHEMA administracion"));
然后可以将其与架构作为前缀一起使用。像这样:
Schema::create('administracion.mytable', function (Blueprint $table) {
$table->bigIncrements('id');
...
});
关于回滚操作的注意事项:考虑到在postgres中,如果包含元素,则不能删除该模式。您应该先删除它们,然后再删除架构。
答案 1 :(得分:0)
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateAdministracionTable extends Migration
{
public function up()
{
Schema::create('administracion', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('airline');
$table->timestamps();
});
}
public function down()
{
Schema::drop('administracion');
}
}