about summary refs log tree commit diff stats
path: root/db
diff options
context:
space:
mode:
Diffstat (limited to 'db')
-rw-r--r--db/migrate/20250512181245_add_latest_post_at_to_stream.rb21
-rw-r--r--db/migrate/20251122012500_create_scrobbles.rb12
-rw-r--r--db/schema.rb12
3 files changed, 44 insertions, 1 deletions
diff --git a/db/migrate/20250512181245_add_latest_post_at_to_stream.rb b/db/migrate/20250512181245_add_latest_post_at_to_stream.rb new file mode 100644 index 0000000..9d753e3 --- /dev/null +++ b/db/migrate/20250512181245_add_latest_post_at_to_stream.rb
@@ -0,0 +1,21 @@
1class AddLatestPostAtToStream < ActiveRecord::Migration[7.1]
2 def up
3 add_column :streams, :latest_post_at, :datetime
4
5 Stream.all.each do |stream|
6 if stream.updates.empty?
7 stream.latest_post_at = stream.created_at
8 else
9 stream.latest_post_at = stream.updates.order(created_at: :desc).first.created_at
10 end
11
12 stream.save!
13 end
14
15 change_column_null :streams, :latest_post_at, false
16 end
17
18 def down
19 remove_column :streams, :latest_post_at, :datetime
20 end
21end
diff --git a/db/migrate/20251122012500_create_scrobbles.rb b/db/migrate/20251122012500_create_scrobbles.rb new file mode 100644 index 0000000..9f00435 --- /dev/null +++ b/db/migrate/20251122012500_create_scrobbles.rb
@@ -0,0 +1,12 @@
1class CreateScrobbles < ActiveRecord::Migration[7.1]
2 def change
3 create_table :scrobbles do |t|
4 t.string :title
5 t.string :artist
6 t.string :album
7 t.string :image
8
9 t.timestamps
10 end
11 end
12end
diff --git a/db/schema.rb b/db/schema.rb index 795a986..74e1976 100644 --- a/db/schema.rb +++ b/db/schema.rb
@@ -10,7 +10,7 @@
10# 10#
11# It's strongly recommended that you check this file into your version control system. 11# It's strongly recommended that you check this file into your version control system.
12 12
13ActiveRecord::Schema[7.1].define(version: 2025_01_12_025207) do 13ActiveRecord::Schema[7.1].define(version: 2025_11_22_012500) do
14 create_table "active_storage_attachments", force: :cascade do |t| 14 create_table "active_storage_attachments", force: :cascade do |t|
15 t.string "name", null: false 15 t.string "name", null: false
16 t.string "record_type", null: false 16 t.string "record_type", null: false
@@ -352,12 +352,22 @@ ActiveRecord::Schema[7.1].define(version: 2025_01_12_025207) do
352 t.index ["recordable_type", "recordable_id"], name: "index_records_on_recordable_type_and_recordable_id" 352 t.index ["recordable_type", "recordable_id"], name: "index_records_on_recordable_type_and_recordable_id"
353 end 353 end
354 354
355 create_table "scrobbles", force: :cascade do |t|
356 t.string "title"
357 t.string "artist"
358 t.string "album"
359 t.string "image"
360 t.datetime "created_at", null: false
361 t.datetime "updated_at", null: false
362 end
363
355 create_table "streams", force: :cascade do |t| 364 create_table "streams", force: :cascade do |t|
356 t.string "title" 365 t.string "title"
357 t.text "body" 366 t.text "body"
358 t.string "slug" 367 t.string "slug"
359 t.datetime "created_at", precision: nil, null: false 368 t.datetime "created_at", precision: nil, null: false
360 t.datetime "updated_at", precision: nil, null: false 369 t.datetime "updated_at", precision: nil, null: false
370 t.datetime "latest_post_at", null: false
361 end 371 end
362 372
363 create_table "taggings", force: :cascade do |t| 373 create_table "taggings", force: :cascade do |t|