diff options
Diffstat (limited to 'database')
-rw-r--r-- | database/migrations/2016_09_05_215803_create_root_kinds.php | 45 | ||||
-rw-r--r-- | database/seeds/BasisTableSeeder.php | 64 | ||||
-rw-r--r-- | database/seeds/RootTableSeeder.php | 37 |
3 files changed, 110 insertions, 36 deletions
diff --git a/database/migrations/2016_09_05_215803_create_root_kinds.php b/database/migrations/2016_09_05_215803_create_root_kinds.php new file mode 100644 index 0000000..2ab1a42 --- /dev/null +++ b/database/migrations/2016_09_05_215803_create_root_kinds.php @@ -0,0 +1,45 @@ +<?php + +use Illuminate\Database\Schema\Blueprint; +use Illuminate\Database\Migrations\Migration; + +class CreateRootKinds extends Migration +{ + /** + * Run the migrations. + * + * @return void + */ + public function up() + { + Schema::create('root_kinds', function (Blueprint $table) { + $table->increments('id'); + $table->boolean('strong'); + $table->string('name')->unique(); + }); + + Schema::table('roots', function (Blueprint $table) { + $table->dropColumn('strong'); + + $table->integer('root_kind_id')->unsigned()->nullable(); + $table->foreign('root_kind_id')->references('id')->on('root_kinds'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('roots', function (Blueprint $table) { + $table->dropForeign(['root_kind_id']); + $table->dropColumn('root_kind_id'); + + $table->boolean('strong')->default(1); + }); + + Schema::drop('root_kinds'); + } +} diff --git a/database/seeds/BasisTableSeeder.php b/database/seeds/BasisTableSeeder.php index bf33d75..d02dfe8 100644 --- a/database/seeds/BasisTableSeeder.php +++ b/database/seeds/BasisTableSeeder.php @@ -18,35 +18,49 @@ */ use Illuminate\Database\Seeder; + +use HebrewParseTrainer\RootKind; use HebrewParseTrainer\Stem; use HebrewParseTrainer\Tense; class BasisTableSeeder extends Seeder { - /** - * Run the database seeds. - * - * @return void - */ - public function run() - { - Stem::create(['name' => 'Qal']); - Stem::create(['name' => 'Niphal']); - Stem::create(['name' => 'Piel']); - Stem::create(['name' => 'Pual']); - Stem::create(['name' => 'Hiphil']); - Stem::create(['name' => 'Hophal']); - Stem::create(['name' => 'Hitpael']); + /** + * Run the database seeds. + * + * @return void + */ + public function run() + { + Stem::create(['name' => 'Qal']); + Stem::create(['name' => 'Niphal']); + Stem::create(['name' => 'Piel']); + Stem::create(['name' => 'Pual']); + Stem::create(['name' => 'Hiphil']); + Stem::create(['name' => 'Hophal']); + Stem::create(['name' => 'Hitpael']); + + Tense::create(['name' => 'perfect', 'abbreviation' => 'pf']); + Tense::create(['name' => 'imperfect', 'abbreviation' => 'ipf']); + Tense::create(['name' => 'cohortative', 'abbreviation' => 'coh']); + Tense::create(['name' => 'imperative', 'abbreviation' => 'imp']); + Tense::create(['name' => 'jussive', 'abbreviation' => 'ius']); + Tense::create(['name' => 'infinitive construct', 'abbreviation' => 'infcs']); + Tense::create(['name' => 'infinitive absolute', 'abbreviation' => 'infabs']); + Tense::create(['name' => 'participle active', 'abbreviation' => 'pta']); + Tense::create(['name' => 'participle passive', 'abbreviation' => 'ptp']); - Tense::create(['name' => 'perfect', 'abbreviation' => 'pf']); - Tense::create(['name' => 'imperfect', 'abbreviation' => 'ipf']); - Tense::create(['name' => 'cohortative', 'abbreviation' => 'coh']); - Tense::create(['name' => 'imperative', 'abbreviation' => 'imp']); - Tense::create(['name' => 'jussive', 'abbreviation' => 'ius']); - Tense::create(['name' => 'infinitive construct', 'abbreviation' => 'infcs']); - Tense::create(['name' => 'infinitive absolute', 'abbreviation' => 'infabs']); - Tense::create(['name' => 'participle active', 'abbreviation' => 'pta']); - Tense::create(['name' => 'participle passive', 'abbreviation' => 'ptp']); - } + RootKind::create(['strong' => true, 'name' => 'Strong']); + RootKind::create(['strong' => false, 'name' => 'I-Guttural']); + RootKind::create(['strong' => false, 'name' => 'I-Aleph']); + RootKind::create(['strong' => false, 'name' => 'I-Nun']); + RootKind::create(['strong' => false, 'name' => 'I-Waw']); + RootKind::create(['strong' => false, 'name' => 'I-Yod']); + RootKind::create(['strong' => false, 'name' => 'II-Guttural']); + RootKind::create(['strong' => false, 'name' => 'III-He']); + RootKind::create(['strong' => false, 'name' => 'Biconsonantal']); + RootKind::create(['strong' => false, 'name' => 'Geminate']); + RootKind::create(['strong' => false, 'name' => 'Double weak']); + } -}
\ No newline at end of file +} diff --git a/database/seeds/RootTableSeeder.php b/database/seeds/RootTableSeeder.php index abda56e..7c3b0ea 100644 --- a/database/seeds/RootTableSeeder.php +++ b/database/seeds/RootTableSeeder.php @@ -19,20 +19,35 @@ use Illuminate\Database\Seeder; use HebrewParseTrainer\Root; +use HebrewParseTrainer\RootKind; use HebrewParseTrainer\RootTranslation; class RootTableSeeder extends Seeder { - /** - * Run the database seeds. - * - * @return void - */ - public function run() - { - Root::create(['root' => 'קטל', 'strong' => true]); + protected function add($root, $kind) { + $kind_id = null; + foreach (RootKind::where('name', $kind)->get() as $rootkind) + $kind_id = $rootkind->id; - RootTranslation::create(['root' => 'קטל', 'translation' => 'kill']); - } + if (is_null($kind_id)) + die('Unknown root kind ' . $kind . "\n"); -}
\ No newline at end of file + Root::create([ + 'root' => $root, + 'root_kind_id' => $kind_id + ]); + } + + /** + * Run the database seeds. + * + * @return void + */ + public function run() + { + $this->add('קטל', 'Strong'); + + RootTranslation::create(['root' => 'קטל', 'translation' => 'kill']); + } + +} |