aboutsummaryrefslogtreecommitdiff
path: root/database
diff options
context:
space:
mode:
Diffstat (limited to 'database')
-rw-r--r--database/migrations/2016_09_05_215803_create_root_kinds.php45
-rw-r--r--database/seeds/BasisTableSeeder.php64
-rw-r--r--database/seeds/RootTableSeeder.php37
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']);
+ }
+
+}