diff options
Diffstat (limited to 'db/migrate')
| -rw-r--r-- | db/migrate/20260627233640_upgrade_events_and_nodes_for_standalone_events.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/db/migrate/20260627233640_upgrade_events_and_nodes_for_standalone_events.rb b/db/migrate/20260627233640_upgrade_events_and_nodes_for_standalone_events.rb new file mode 100644 index 0000000..790a62b --- /dev/null +++ b/db/migrate/20260627233640_upgrade_events_and_nodes_for_standalone_events.rb | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | class UpgradeEventsAndNodesForStandaloneEvents < ActiveRecord::Migration[8.1] | ||
| 2 | def up | ||
| 3 | # Events: make node optional, add missing fields | ||
| 4 | change_column_null :events, :node_id, true | ||
| 5 | add_column :events, :title, :string | ||
| 6 | add_column :events, :description, :text | ||
| 7 | add_column :events, :is_primary, :boolean, default: false, null: false | ||
| 8 | |||
| 9 | # Mark all existing events as primary (they were all 1:1 with nodes) | ||
| 10 | Event.where.not(node_id: nil).update_all(is_primary: true) | ||
| 11 | |||
| 12 | # Occurrences: make node optional | ||
| 13 | change_column_null :occurrences, :node_id, true | ||
| 14 | |||
| 15 | # Nodes: add external URL | ||
| 16 | add_column :nodes, :external_url, :string | ||
| 17 | end | ||
| 18 | |||
| 19 | def down | ||
| 20 | remove_column :nodes, :external_url | ||
| 21 | change_column_null :occurrences, :node_id, false | ||
| 22 | remove_column :events, :is_primary | ||
| 23 | remove_column :events, :description | ||
| 24 | remove_column :events, :title | ||
| 25 | change_column_null :events, :node_id, false | ||
| 26 | end | ||
| 27 | end | ||
