You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
701 B
32 lines
701 B
1 year ago
|
Sequel.migration do
|
||
|
up do
|
||
|
create_table(:urls) do
|
||
|
primary_key :id
|
||
|
foreign_key :entity_id, :entities, unique: true
|
||
|
|
||
|
String :url, unique: true, null: false
|
||
|
|
||
|
DateTime :created_at, null: false
|
||
|
DateTime :modified_at, null: false
|
||
|
end
|
||
|
|
||
|
json = Sequel.sqlite_json_op(:json)
|
||
|
href = json.extract("$.href")
|
||
|
|
||
|
DB[:pinboard]
|
||
|
.select_append(href.as(:href))
|
||
|
.each do |pin|
|
||
|
entity_id = pin.fetch(:entity_id)
|
||
|
url = pin.fetch(:href)
|
||
|
created_at = modified_at = DateTime.now
|
||
|
|
||
|
DB[:urls].insert(entity_id:, url:, created_at:, modified_at:)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
down do
|
||
|
drop_table(:tags)
|
||
|
drop_table(:entities_tags)
|
||
|
end
|
||
|
end
|