Some checks failed
abc-api/abcParser/pipeline/head There was a failure building this commit
138 lines
5.7 KiB
PHP
Executable File
138 lines
5.7 KiB
PHP
Executable File
<?php
|
|
|
|
use Illuminate\Database\Migrations\Migration;
|
|
use Illuminate\Database\Schema\Blueprint;
|
|
|
|
class CreateParseabcTables extends Migration
|
|
{
|
|
/**
|
|
* Run the migrations.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function up()
|
|
{
|
|
Schema::create('collections', function (Blueprint $table) {
|
|
$table->binary('id');
|
|
$table->string('name', 255)->nullable();
|
|
$table->string('L', 5)->nullable();
|
|
$table->string('meter', 3)->nullable();
|
|
$table->timestamps();
|
|
});
|
|
Schema::create('collection_attributes', function (Blueprint $table) {
|
|
$table->binary('collection_id');
|
|
$table->enum('type', ['Author','Composer','Discography','Rhythm','History','File','Book','Note','Source','Transcriber']);
|
|
$table->string('string', 255);
|
|
$table->tinyInteger('ordering')->unsigned()->default(0);
|
|
$table->timestamps();
|
|
$table->primary(['collection_id','type','ordering']);
|
|
$table->foreign('collection_id')->references('id')->on('collections')->onUpdate('cascade')->onDelete('cascade');
|
|
});
|
|
|
|
// user profiles/roles/groups
|
|
// Schema::create('Groups', function (Blueprint $table) {
|
|
// $table->bigIncrements('id');
|
|
// $table->string('name', 20);
|
|
// $table->string('description', 100);
|
|
// $table->timestamps();
|
|
// });
|
|
|
|
Schema::create('persons', function (Blueprint $table) {
|
|
$table->binary('id');
|
|
$table->string('name', 63);
|
|
$table->string('email', 255);
|
|
$table->timestamps();
|
|
});
|
|
|
|
Schema::create('tunes', function (Blueprint $table) {
|
|
$table->binary('id');
|
|
$table->tinyInteger('x_id')->default('1');
|
|
$table->timestamps();
|
|
|
|
});
|
|
|
|
Schema::create('tune_settings', function (Blueprint $table) {
|
|
$table->binary('id');
|
|
$table->binary('tune_id');
|
|
$table->string('meter', 3)->default('C');
|
|
$table->string('keysig',5)->default('C');
|
|
$table->string('filename', 255)->nullable();
|
|
$table->string('tempo', 10)->nullable();
|
|
$table->string('L', 5)->nullable();
|
|
$table->text('music')->nullable();
|
|
$table->string('parts', 255)->nullable();
|
|
$table->timestamps();
|
|
$table->foreign('tune_id')->references('id')->on('tunes')->onUpdate('cascade')->onDelete('cascade');
|
|
});
|
|
Schema::create('tune_attributes', function (Blueprint $table) {
|
|
$table->binary('tune_id');
|
|
$table->enum('type', ['Title','Group','Origin','Rhythm','History']);
|
|
$table->string('string', 255);
|
|
$table->tinyInteger('ordering')->unsigned()->default(0);
|
|
$table->timestamps();
|
|
$table->primary(['tune_id','type','ordering']);
|
|
$table->foreign('tune_id')->references('id')->on('tunes')->onUpdate('cascade')->onDelete('cascade');
|
|
});
|
|
|
|
Schema::create('tune_books', function (Blueprint $table) {
|
|
$table->binary('collection_id');
|
|
$table->binary('setting_id');
|
|
$table->timestamps();
|
|
$table->primary(['collection_id','setting_id']);
|
|
$table->foreign('collection_id')->references('id')->on('collections')->onUpdate('cascade')->onDelete('cascade');
|
|
$table->foreign('setting_id')->references('id')->on('tune_settings')->onUpdate('cascade')->onDelete('cascade');
|
|
});
|
|
|
|
Schema::create('tune_persons', function (Blueprint $table) {
|
|
$table->binary('tune_id');
|
|
$table->binary('person_id');
|
|
$table->enum('type', ['Author','Composer','Transcriber','']);
|
|
$table->tinyInteger('ordering')->unsigned()->default(0);
|
|
$table->timestamps();
|
|
$table->primary(['tune_id','person_id','type','ordering']);
|
|
$table->foreign('tune_id')->references('id')->on('tunes')->onUpdate('cascade')->onDelete('cascade');
|
|
$table->foreign('person_id')->references('id')->on('persons')->onUpdate('cascade')->onDelete('cascade');
|
|
});
|
|
|
|
Schema::create('tune_setting_attributes', function (Blueprint $table) {
|
|
$table->binary('setting_id');
|
|
$table->enum('type', ['Transcriber','Note','Discography','Source','Word','Book']);
|
|
$table->string('string', 255);
|
|
$table->tinyInteger('ordering')->unsigned()->default(0);
|
|
$table->timestamps();
|
|
$table->primary(['setting_id','type','ordering']);
|
|
$table->foreign('setting_id')->references('id')->on('tune_settings')->onUpdate('cascade')->onDelete('cascade');
|
|
});
|
|
|
|
Schema::create('tune_setting_persons', function (Blueprint $table) {
|
|
$table->binary('setting_id');
|
|
$table->binary('person_id');
|
|
$table->tinyInteger('ordering')->unsigned()->default(0);
|
|
$table->timestamps();
|
|
$table->primary(['setting_id','person_id','ordering']);
|
|
$table->foreign('setting_id')->references('id')->on('tune_settings')->onUpdate('cascade')->onDelete('cascade');
|
|
$table->foreign('person_id')->references('id')->on('persons')->onUpdate('cascade')->onDelete('cascade');
|
|
});
|
|
|
|
}
|
|
|
|
/**
|
|
* Reverse the migrations.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function down()
|
|
{
|
|
Schema::drop('tune_setting_persons');
|
|
Schema::drop('tune_setting_attributes');
|
|
Schema::drop('tune_persons');
|
|
Schema::drop('tune_books');
|
|
Schema::drop('tune_attributes');
|
|
// Schema::drop('Groups');
|
|
Schema::drop('tune_settings');
|
|
Schema::drop('tunes');
|
|
Schema::drop('persons');
|
|
Schema::drop('collections');
|
|
}
|
|
}
|