Class: RailsRedshiftReplicator::Replication
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- RailsRedshiftReplicator::Replication
- Defined in:
- app/models/rails_redshift_replicator/replication.rb
Constant Summary collapse
- STATES =
%w(enqueued exporting exported uploading uploaded importing imported canceled)
- FORMATS =
%w(gzip csv)
Class Method Summary collapse
Instance Method Summary collapse
-
#cancel! ⇒ Object
Cancels the replication.
-
#clear_errors! ⇒ Object
Clears the error column.
-
#error? ⇒ true, false
If replication is on an error state.
-
#format ⇒ true, false
Builds helper methods to identify export format.
-
#ids_to_delete ⇒ Array
Ids from source_table to delete on the next replication.
-
#replicable ⇒ RailsRedshiftReplicator::Replicable
Replicable for this model/table.
-
#setup_target_table ⇒ Object
Initializes target table if it is blank.
Class Method Details
.cap_id(table, cap) ⇒ Object
44 45 46 47 |
# File 'app/models/rails_redshift_replicator/replication.rb', line 44 def self.cap_id(table, cap) return unless cap where(source_table: table).order("id desc").limit(cap).pluck(:id)[cap-1] end |
Instance Method Details
#cancel! ⇒ Object
Cancels the replication
31 32 33 |
# File 'app/models/rails_redshift_replicator/replication.rb', line 31 def cancel! update_attribute :state, 'canceled' end |
#clear_errors! ⇒ Object
Clears the error column
15 16 17 |
# File 'app/models/rails_redshift_replicator/replication.rb', line 15 def clear_errors! update_attributes last_error: nil end |
#error? ⇒ true, false
If replication is on an error state
21 22 23 |
# File 'app/models/rails_redshift_replicator/replication.rb', line 21 def error? last_error.present? end |
#format ⇒ true, false
Builds helper methods to identify export format.
51 52 53 54 55 56 57 58 |
# File 'app/models/rails_redshift_replicator/replication.rb', line 51 FORMATS.each do |format| # @example # self.format = "gzip" # self.csv? #=> false define_method "#{format}?" do export_format == format end end |
#ids_to_delete ⇒ Array
Returns ids from source_table to delete on the next replication.
7 |
# File 'app/models/rails_redshift_replicator/replication.rb', line 7 serialize :ids_to_delete, Array |
#replicable ⇒ RailsRedshiftReplicator::Replicable
Returns replicable for this model/table.
36 37 38 |
# File 'app/models/rails_redshift_replicator/replication.rb', line 36 def replicable RailsRedshiftReplicator.replicables[source_table] end |
#setup_target_table ⇒ Object
Initializes target table if it is blank
26 27 28 |
# File 'app/models/rails_redshift_replicator/replication.rb', line 26 def setup_target_table self.target_table = source_table if target_table.blank? end |