Add parts of speech model and database ingest rake task

This commit is contained in:
maddiebaka 2023-10-12 20:02:10 -04:00
parent b58f54943b
commit 6f46b1be7c
3 changed files with 52 additions and 0 deletions

View 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
View 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
View 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