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