Fix some old migration scripts (#17394)
* Fix some old migration scripts * Fix edge case in two-step migration from older releases
This commit is contained in:
		@@ -1,6 +1,46 @@
 | 
			
		||||
class RemoveFauxRemoteAccountDuplicates < ActiveRecord::Migration[5.2]
 | 
			
		||||
  disable_ddl_transaction!
 | 
			
		||||
 | 
			
		||||
  class StreamEntry < ApplicationRecord
 | 
			
		||||
    # Dummy class, to make migration possible across version changes
 | 
			
		||||
    belongs_to :account, inverse_of: :stream_entries
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  class Status < ApplicationRecord
 | 
			
		||||
    # Dummy class, to make migration possible across version changes
 | 
			
		||||
    belongs_to :account, inverse_of: :statuses
 | 
			
		||||
    has_many :favourites, inverse_of: :status, dependent: :destroy
 | 
			
		||||
    has_many :mentions, dependent: :destroy, inverse_of: :status
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  class Favourite < ApplicationRecord
 | 
			
		||||
    # Dummy class, to make migration possible across version changes
 | 
			
		||||
    belongs_to :account, inverse_of: :favourites
 | 
			
		||||
    belongs_to :status,  inverse_of: :favourites
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  class Mention < ApplicationRecord
 | 
			
		||||
    # Dummy class, to make migration possible across version changes
 | 
			
		||||
    belongs_to :account, inverse_of: :mentions
 | 
			
		||||
    belongs_to :status
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  class Notification < ApplicationRecord
 | 
			
		||||
    # Dummy class, to make migration possible across version changes
 | 
			
		||||
    belongs_to :account, optional: true
 | 
			
		||||
    belongs_to :from_account, class_name: 'Account', optional: true
 | 
			
		||||
    belongs_to :activity, polymorphic: true, optional: true
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  class Account < ApplicationRecord
 | 
			
		||||
    # Dummy class, to make migration possible across version changes
 | 
			
		||||
    has_many :stream_entries, inverse_of: :account, dependent: :destroy
 | 
			
		||||
    has_many :statuses, inverse_of: :account, dependent: :destroy
 | 
			
		||||
    has_many :favourites, inverse_of: :account, dependent: :destroy
 | 
			
		||||
    has_many :mentions, inverse_of: :account, dependent: :destroy
 | 
			
		||||
    has_many :notifications, inverse_of: :account, dependent: :destroy
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def up
 | 
			
		||||
    local_domain = Rails.configuration.x.local_domain
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,9 @@
 | 
			
		||||
class AddInstanceActor < ActiveRecord::Migration[5.2]
 | 
			
		||||
  class Account < ApplicationRecord
 | 
			
		||||
    # Dummy class, to make migration possible across version changes
 | 
			
		||||
    validates :username, uniqueness: { scope: :domain, case_sensitive: false }
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def up
 | 
			
		||||
    Account.create!(id: -99, actor_type: 'Application', locked: true, username: Rails.configuration.x.local_domain)
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,8 @@
 | 
			
		||||
class UpdatePtLocales < ActiveRecord::Migration[5.2]
 | 
			
		||||
  class User < ApplicationRecord
 | 
			
		||||
    # Dummy class, to make migration possible across version changes
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  disable_ddl_transaction!
 | 
			
		||||
 | 
			
		||||
  def up
 | 
			
		||||
 
 | 
			
		||||
@@ -20,7 +20,7 @@ FROM (
 | 
			
		||||
  HAVING count(follows.id) >= 5
 | 
			
		||||
  UNION ALL
 | 
			
		||||
  SELECT accounts.id AS account_id,
 | 
			
		||||
         sum(reblogs_count + favourites_count) / (1.0 + sum(reblogs_count + favourites_count)) AS rank,
 | 
			
		||||
         sum(status_stats.reblogs_count + status_stats.favourites_count) / (1.0 + sum(status_stats.reblogs_count + status_stats.favourites_count)) AS rank,
 | 
			
		||||
         'most_interactions' AS reason
 | 
			
		||||
  FROM status_stats
 | 
			
		||||
  INNER JOIN statuses ON statuses.id = status_stats.status_id
 | 
			
		||||
@@ -32,7 +32,7 @@ FROM (
 | 
			
		||||
    AND accounts.locked = 'f'
 | 
			
		||||
    AND accounts.discoverable = 't'
 | 
			
		||||
  GROUP BY accounts.id
 | 
			
		||||
  HAVING sum(reblogs_count + favourites_count) >= 5
 | 
			
		||||
  HAVING sum(status_stats.reblogs_count + status_stats.favourites_count) >= 5
 | 
			
		||||
) t0
 | 
			
		||||
GROUP BY account_id
 | 
			
		||||
ORDER BY rank DESC
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@ FROM (
 | 
			
		||||
  HAVING count(follows.id) >= 5
 | 
			
		||||
  UNION ALL
 | 
			
		||||
  SELECT account_summaries.account_id AS account_id,
 | 
			
		||||
         sum(reblogs_count + favourites_count) / (1.0 + sum(reblogs_count + favourites_count)) AS rank,
 | 
			
		||||
         sum(status_stats.reblogs_count + status_stats.favourites_count) / (1.0 + sum(status_stats.reblogs_count + status_stats.favourites_count)) AS rank,
 | 
			
		||||
         'most_interactions' AS reason
 | 
			
		||||
  FROM status_stats
 | 
			
		||||
  INNER JOIN statuses ON statuses.id = status_stats.status_id
 | 
			
		||||
@@ -28,7 +28,7 @@ FROM (
 | 
			
		||||
    AND account_summaries.sensitive = 'f'
 | 
			
		||||
    AND follow_recommendation_suppressions.id IS NULL
 | 
			
		||||
  GROUP BY account_summaries.account_id
 | 
			
		||||
  HAVING sum(reblogs_count + favourites_count) >= 5
 | 
			
		||||
  HAVING sum(status_stats.reblogs_count + status_stats.favourites_count) >= 5
 | 
			
		||||
) t0
 | 
			
		||||
GROUP BY account_id
 | 
			
		||||
ORDER BY rank DESC
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user