Add parts of speech model and database ingest rake task
This commit is contained in:
		
							
								
								
									
										10
									
								
								db/migrate/20231012235050_create_part_of_speeches.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								db/migrate/20231012235050_create_part_of_speeches.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
class CreatePartOfSpeeches < ActiveRecord::Migration[7.1]
 | 
			
		||||
  def change
 | 
			
		||||
    create_table :part_of_speeches do |t|
 | 
			
		||||
      t.string :pos
 | 
			
		||||
      t.string :definition
 | 
			
		||||
 | 
			
		||||
      t.timestamps
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										21
									
								
								db/schema.rb
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								db/schema.rb
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
# This file is auto-generated from the current state of the database. Instead
 | 
			
		||||
# of editing this file, please use the migrations feature of Active Record to
 | 
			
		||||
# incrementally modify your database, and then regenerate this schema definition.
 | 
			
		||||
#
 | 
			
		||||
# This file is the source Rails uses to define your schema when running `bin/rails
 | 
			
		||||
# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
 | 
			
		||||
# be faster and is potentially less error prone than running all of your
 | 
			
		||||
# migrations from scratch. Old migrations may fail to apply correctly if those
 | 
			
		||||
# migrations use external dependencies or application code.
 | 
			
		||||
#
 | 
			
		||||
# It's strongly recommended that you check this file into your version control system.
 | 
			
		||||
 | 
			
		||||
ActiveRecord::Schema[7.1].define(version: 2023_10_12_235050) do
 | 
			
		||||
  create_table "part_of_speeches", force: :cascade do |t|
 | 
			
		||||
    t.string "pos"
 | 
			
		||||
    t.string "definition"
 | 
			
		||||
    t.datetime "created_at", null: false
 | 
			
		||||
    t.datetime "updated_at", null: false
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										21
									
								
								lib/tasks/database.rake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								lib/tasks/database.rake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
namespace :database do
 | 
			
		||||
  desc "TODO"
 | 
			
		||||
  task ingest: :environment do
 | 
			
		||||
    ingest_data
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
def ingest_data
 | 
			
		||||
  if PartOfSpeech.count > 0
 | 
			
		||||
    puts "Data already exists in table! Aborting."
 | 
			
		||||
    return
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  parts_of_speech = JSON.parse(File.read('db/dataset_en/toki-partsofspeech.json'))
 | 
			
		||||
 | 
			
		||||
  parts_of_speech.each do |pos|
 | 
			
		||||
    PartOfSpeech.create(pos: pos['pos'], definition: pos['definition'])
 | 
			
		||||
  end
 | 
			
		||||
  puts "Ingest complete."
 | 
			
		||||
end
 | 
			
		||||
		Reference in New Issue
	
	Block a user