inventur/database/migrations/2020_01_19_000000_initialize_database.php
chrosey 3d627e5508 [TASK] update migration
- float_precision
- timestamp-default
- add rollback
2020-01-22 00:03:59 +01:00

98 lines
2.9 KiB
PHP

<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Capsule\Manager as Capsule;
class InitializeDatabase extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
$builder = Capsule::schema();
$builder->create(
'dimensions',
function ($table) {
$table->increments('id');
$table->string('name')->unique();
$table->string('short')->unique();
}
);
$builder->create(
'groups',
function ($table) {
$table->increments('id');
$table->string('name')->unique();
}
);
$builder->create(
'articles',
function ($table) {
$table->increments('id');
$table->string('name')->unique();
$table->string('short')->unique();
$table->unsignedInteger('group_id');
$table->foreign('group_id')->references('id')->on('groups');
$table->float('content_size', 8, 2);
$table->float('portion_size', 8, 2);
$table->float('portion_price', 8, 2);
$table->unsignedInteger('content_dimension');
$table->foreign('content_dimension')->references('id')->on('dimensions');
$table->unsignedInteger('portion_dimension');
$table->foreign('portion_dimension')->references('id')->on('dimensions');
$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent();
}
);
$builder->create(
'sets',
function ($table) {
$table->increments('id');
$table->string('name')->unique();
$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent();
}
);
$builder->create(
'set_article',
function ($table) {
$table->increments('id');
$table->unsignedInteger('order');
$table->unsignedInteger('set_id');
$table->foreign('set_id')->references('id')->on('sets');
$table->unsignedInteger('article_id');
$table->foreign('article_id')->references('id')->on('articles');
$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent();
}
);
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
$builder = Capsule::schema();
$builder->drop('set_article');
$builder->drop('sets');
$builder->drop('articles');
$builder->drop('groups');
$builder->drop('dimensions');
}
}