Skip to content

Commit 5046290

Browse files
committed
Migrate all "on_delete: :delete_all" calls to the db
1 parent df5847f commit 5046290

File tree

11 files changed

+69
-33
lines changed

11 files changed

+69
-33
lines changed

lib/changelog/schema/episode/episode.ex

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,15 +82,15 @@ defmodule Changelog.Episode do
8282
belongs_to :podcast, Podcast
8383
belongs_to :episode_request, EpisodeRequest, foreign_key: :request_id
8484

85-
has_many :episode_hosts, EpisodeHost, on_delete: :delete_all
85+
has_many :episode_hosts, EpisodeHost
8686
has_many :hosts, through: [:episode_hosts, :person]
87-
has_many :episode_guests, EpisodeGuest, on_delete: :delete_all
87+
has_many :episode_guests, EpisodeGuest
8888
has_many :guests, through: [:episode_guests, :person]
89-
has_many :episode_topics, EpisodeTopic, on_delete: :delete_all
89+
has_many :episode_topics, EpisodeTopic
9090
has_many :topics, through: [:episode_topics, :topic]
91-
has_many :episode_sponsors, EpisodeSponsor, on_delete: :delete_all
91+
has_many :episode_sponsors, EpisodeSponsor
9292
has_many :sponsors, through: [:episode_sponsors, :sponsor]
93-
has_many :episode_stats, EpisodeStat, on_delete: :delete_all
93+
has_many :episode_stats, EpisodeStat
9494

9595
timestamps()
9696
end

lib/changelog/schema/news/news_ad.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ defmodule Changelog.NewsAd do
1818
field :delete, :boolean, virtual: true
1919

2020
belongs_to :sponsorship, NewsSponsorship
21-
has_many :news_issue_ads, NewsIssueAd, foreign_key: :ad_id, on_delete: :delete_all
21+
has_many :news_issue_ads, NewsIssueAd, foreign_key: :ad_id
2222
has_many :issues, through: [:news_issue_ads, :issue]
2323

2424
timestamps()

lib/changelog/schema/news/news_issue.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ defmodule Changelog.NewsIssue do
1111
field :published, :boolean, default: false
1212
field :published_at, :utc_datetime
1313

14-
has_many :news_issue_ads, NewsIssueAd, foreign_key: :issue_id, on_delete: :delete_all
14+
has_many :news_issue_ads, NewsIssueAd, foreign_key: :issue_id
1515
has_many :ads, through: [:news_issue_ads, :ad]
16-
has_many :news_issue_items, NewsIssueItem, foreign_key: :issue_id, on_delete: :delete_all
16+
has_many :news_issue_items, NewsIssueItem, foreign_key: :issue_id
1717
has_many :items, through: [:news_issue_items, :item]
1818

1919
timestamps()

lib/changelog/schema/news/news_item.ex

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,12 @@ defmodule Changelog.NewsItem do
4747
belongs_to :logger, Person
4848
belongs_to :submitter, Person
4949
belongs_to :source, NewsSource
50-
has_one :news_queue, NewsQueue, foreign_key: :item_id, on_delete: :delete_all
50+
has_one :news_queue, NewsQueue, foreign_key: :item_id
5151

52-
has_many :news_item_topics, NewsItemTopic,
53-
foreign_key: :item_id,
54-
on_delete: :delete_all,
55-
on_replace: :delete
52+
has_many :news_item_topics, NewsItemTopic, foreign_key: :item_id, on_replace: :delete
5653

5754
has_many :topics, through: [:news_item_topics, :topic]
58-
has_many :comments, NewsItemComment, foreign_key: :item_id, on_delete: :delete_all
55+
has_many :comments, NewsItemComment, foreign_key: :item_id
5956
has_many :subscriptions, Subscription, where: [unsubscribed_at: nil], foreign_key: :item_id
6057

6158
timestamps()

lib/changelog/schema/news/news_sponsorship.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ defmodule Changelog.NewsSponsorship do
1010
field :click_count, :integer, default: 0
1111

1212
belongs_to :sponsor, Sponsor
13-
has_many :ads, NewsAd, foreign_key: :sponsorship_id, on_delete: :delete_all
13+
has_many :ads, NewsAd, foreign_key: :sponsorship_id
1414

1515
timestamps()
1616
end

lib/changelog/schema/person.ex

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,26 +77,26 @@ defmodule Changelog.Person do
7777
has_many :memberships, Membership
7878
has_one :active_membership, Membership, where: [status: {:in, Membership.active_statuses()}]
7979

80-
has_many :podcast_hosts, PodcastHost, on_delete: :delete_all
80+
has_many :podcast_hosts, PodcastHost
8181

82-
has_many :episode_hosts, EpisodeHost, on_delete: :delete_all
82+
has_many :episode_hosts, EpisodeHost
8383
has_many :host_episodes, through: [:episode_hosts, :episode]
8484

85-
has_many :episode_guests, EpisodeGuest, on_delete: :delete_all
85+
has_many :episode_guests, EpisodeGuest
8686
has_many :guest_episodes, through: [:episode_guests, :episode]
8787

88-
has_many :authored_posts, Post, foreign_key: :author_id, on_delete: :delete_all
88+
has_many :authored_posts, Post, foreign_key: :author_id
8989

90-
has_many :sponsor_reps, SponsorRep, on_delete: :delete_all
90+
has_many :sponsor_reps, SponsorRep
9191
has_many :sponsors, through: [:sponsor_reps, :sponsor]
9292

9393
has_many :authored_news_items, NewsItem, foreign_key: :author_id, on_delete: :nilify_all
9494
has_many :logged_news_items, NewsItem, foreign_key: :logger_id, on_delete: :nilify_all
9595
has_many :submitted_news_items, NewsItem, foreign_key: :submitter_id, on_delete: :nilify_all
9696

9797
has_many :comments, NewsItemComment, foreign_key: :author_id
98-
has_many :subscriptions, Subscription, where: [unsubscribed_at: nil], on_delete: :delete_all
99-
has_many :episode_requests, EpisodeRequest, foreign_key: :submitter_id, on_delete: :delete_all
98+
has_many :subscriptions, Subscription, where: [unsubscribed_at: nil]
99+
has_many :episode_requests, EpisodeRequest, foreign_key: :submitter_id
100100

101101
has_many :feeds, Feed, foreign_key: :owner_id
102102

lib/changelog/schema/podcast/podcast.ex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,12 @@ defmodule Changelog.Podcast do
5151

5252
field :cover, Files.Cover.Type
5353

54-
has_many :episodes, Episode, on_delete: :delete_all
55-
has_many :episode_requests, EpisodeRequest, on_delete: :delete_all
56-
has_many :podcast_topics, PodcastTopic, on_delete: :delete_all
54+
has_many :episodes, Episode
55+
has_many :episode_requests, EpisodeRequest
56+
has_many :podcast_topics, PodcastTopic
5757
has_many :topics, through: [:podcast_topics, :topic]
5858

59-
has_many :podcast_hosts, PodcastHost, on_delete: :delete_all
59+
has_many :podcast_hosts, PodcastHost
6060
has_many :hosts, through: [:podcast_hosts, :person]
6161

6262
has_many :active_podcast_hosts, PodcastHost, where: [retired: false]

lib/changelog/schema/post/post.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ defmodule Changelog.Post do
2626
belongs_to :author, Person
2727
belongs_to :editor, Person
2828

29-
has_many :post_topics, PostTopic, on_delete: :delete_all
29+
has_many :post_topics, PostTopic
3030
has_many :topics, through: [:post_topics, :topic]
3131

3232
timestamps()

lib/changelog/schema/sponsor/sponsor.ex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ defmodule Changelog.Sponsor do
1515
field :dark_logo, Files.DarkLogo.Type
1616
field :light_logo, Files.LightLogo.Type
1717

18-
has_many :episode_sponsors, EpisodeSponsor, on_delete: :delete_all
19-
has_many :news_sponsorships, NewsSponsorship, on_delete: :delete_all
18+
has_many :episode_sponsors, EpisodeSponsor
19+
has_many :news_sponsorships, NewsSponsorship
2020

21-
has_many :sponsor_reps, SponsorRep, on_delete: :delete_all
21+
has_many :sponsor_reps, SponsorRep
2222
has_many :reps, through: [:sponsor_reps, :person]
2323

2424
timestamps()

lib/changelog/schema/topic.ex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ defmodule Changelog.Topic do
1212

1313
field :icon, Files.Icon.Type
1414

15-
has_many :episode_topics, EpisodeTopic, on_delete: :delete_all
15+
has_many :episode_topics, EpisodeTopic
1616
has_many :episodes, through: [:episode_topics, :episode]
17-
has_many :news_item_topics, NewsItemTopic, on_delete: :delete_all
17+
has_many :news_item_topics, NewsItemTopic
1818
has_many :news_items, through: [:news_item_topics, :news_item]
19-
has_many :post_topics, PostTopic, on_delete: :delete_all
19+
has_many :post_topics, PostTopic
2020
has_many :posts, through: [:post_topics, :post]
2121

2222
timestamps()
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
defmodule Changelog.Repo.Migrations.MoveDeleteAllsToDatabase do
2+
use Ecto.Migration
3+
4+
def up do
5+
drop constraint(:feed_stats, :feed_stats_feed_id_fkey)
6+
7+
alter table(:feed_stats) do
8+
modify(:feed_id, references(:feeds, on_delete: :delete_all))
9+
end
10+
11+
drop constraint(:news_item_comments, :news_item_comments_item_id_fkey)
12+
13+
alter table(:news_item_comments) do
14+
modify(:item_id, references(:news_items, on_delete: :delete_all))
15+
end
16+
17+
drop constraint(:news_ads, :news_ads_sponsorship_id_fkey)
18+
19+
alter table(:news_ads) do
20+
modify(:sponsorship_id, references(:news_sponsorships, on_delete: :delete_all))
21+
end
22+
23+
drop constraint(:sponsor_reps, :sponsor_reps_sponsor_id_fkey)
24+
25+
alter table(:sponsor_reps) do
26+
modify(:sponsor_id, references(:sponsors, on_delete: :delete_all))
27+
end
28+
29+
drop constraint(:sponsor_reps, :sponsor_reps_person_id_fkey)
30+
31+
alter table(:sponsor_reps) do
32+
modify(:person_id, references(:people, on_delete: :delete_all))
33+
end
34+
end
35+
36+
def down do
37+
# do nothing because the `up` is idempotent
38+
end
39+
end

0 commit comments

Comments
 (0)