Add parts of speech model and database ingest rake task
This commit is contained in:
parent
b58f54943b
commit
6f46b1be7c
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
|
Loading…
Reference in New Issue
Block a user