/** * Run the migrations. */ public function up() { Schema::create('gedcom_form_structure', function (Blueprint $table) { $table->increments('id'); $table->unsignedInteger('gedcom_form_id')->index(); $table->unsignedInteger('version_number_id')->index(); // Composite keys $table->unique(['gedcom_form_id', 'version_number_id']); // Foreign keys $table->foreign('gedcom_form_id')->references('id')->on('gedcom_form'); $table->foreign('version_number_id')->references('id')->on('version_number'); }); DB::transaction(function () { GedcomFormStructure::unguard(); foreach ($this->data as $datum) { $gedcom_form = GedcomForm::where(['value' => $datum['gedcom_form']])->firstOrFail(); $version_number = VersionNumber::where(['value' => $datum['version_number']])->firstOrFail(); $gedcom_form_structure = new GedcomFormStructure(); $gedcom_form_structure->gedcomForm()->associate($gedcom_form); $gedcom_form_structure->versionNumber()->associate($version_number); $gedcom_form_structure->save(); } GedcomFormStructure::reguard(); }); }
/** * Run the migrations. */ public function up() { Schema::create('gedcom_form', function (Blueprint $table) { $table->increments('id'); $table->string('value', GedcomSpecification::LENGTH_GEDCOM_FORM)->unique(); $table->boolean('standard')->default(false); }); DB::transaction(function () { GedcomForm::unguard(); foreach ($this->data as $datum) { GedcomForm::create($datum); } GedcomForm::reguard(); }); }