diff options
Diffstat (limited to 'app/models/referential_cloning.rb')
| -rw-r--r-- | app/models/referential_cloning.rb | 21 | 
1 files changed, 17 insertions, 4 deletions
| diff --git a/app/models/referential_cloning.rb b/app/models/referential_cloning.rb index 5bf283814..24117e6c8 100644 --- a/app/models/referential_cloning.rb +++ b/app/models/referential_cloning.rb @@ -2,14 +2,27 @@ class ReferentialCloning < ActiveRecord::Base    include AASM    belongs_to :source_referential, class_name: 'Referential'    belongs_to :target_referential, class_name: 'Referential' -  after_commit :perform_clone, :on => :create +  after_commit :clone, on: :create -  private -  def perform_clone +  def clone      ReferentialCloningWorker.perform_async(id) -    # ReferentialCloningWorker.new.perform(id)    end +  def clone! +    run! + +    AF83::SchemaCloner +      .new(source_referential.slug, target_referential.slug) +      .clone_schema + +    successful! +  rescue Exception => e +    Rails.logger.error "Clone failed : #{e}" +    failed! +  end + +  private +    aasm column: :status do      state :new, :initial => true      state :pending | 
