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/schema.rb3
2 files changed, 23 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/schema.rb b/db/schema.rb index 795a986..76e9ad8 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_05_12_181245) 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
@@ -358,6 +358,7 @@ ActiveRecord::Schema[7.1].define(version: 2025_01_12_025207) do
358 t.string "slug" 358 t.string "slug"
359 t.datetime "created_at", precision: nil, null: false 359 t.datetime "created_at", precision: nil, null: false
360 t.datetime "updated_at", precision: nil, null: false 360 t.datetime "updated_at", precision: nil, null: false
361 t.datetime "latest_post_at", null: false
361 end 362 end
362 363
363 create_table "taggings", force: :cascade do |t| 364 create_table "taggings", force: :cascade do |t|