mirror of https://github.com/docusealco/docuseal
				
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							41 lines
						
					
					
						
							1.0 KiB
						
					
					
				
			
		
		
	
	
							41 lines
						
					
					
						
							1.0 KiB
						
					
					
				# frozen_string_literal: true
 | 
						|
 | 
						|
class AddFolderIdToTemplates < ActiveRecord::Migration[7.0]
 | 
						|
  class MigrationTemplateFolder < ApplicationRecord
 | 
						|
    self.table_name = 'template_folders'
 | 
						|
  end
 | 
						|
 | 
						|
  class MigrationAccount < ApplicationRecord
 | 
						|
    self.table_name = 'accounts'
 | 
						|
  end
 | 
						|
 | 
						|
  class MigrationTemplate < ApplicationRecord
 | 
						|
    self.table_name = 'templates'
 | 
						|
  end
 | 
						|
 | 
						|
  class MigrationUser < ApplicationRecord
 | 
						|
    self.table_name = 'users'
 | 
						|
  end
 | 
						|
 | 
						|
  def up
 | 
						|
    add_reference :templates, :folder, foreign_key: { to_table: :template_folders }, index: true, null: true
 | 
						|
 | 
						|
    MigrationAccount.pluck(:id).each do |account_id|
 | 
						|
      author_id = MigrationUser.where(account_id:).minimum(:id)
 | 
						|
 | 
						|
      next if author_id.blank?
 | 
						|
 | 
						|
      folder = MigrationTemplateFolder.create_with(author_id:)
 | 
						|
                                      .find_or_create_by(name: 'Default', account_id:)
 | 
						|
 | 
						|
      MigrationTemplate.where(account_id:).update_all(folder_id: folder.id)
 | 
						|
    end
 | 
						|
 | 
						|
    change_column_null :templates, :folder_id, false
 | 
						|
  end
 | 
						|
 | 
						|
  def down
 | 
						|
    remove_column :templates, :folder_id
 | 
						|
  end
 | 
						|
end
 |