Class: Rpush200Updates
- Inherits:
-
Object
- Object
- Rpush200Updates
- Defined in:
- lib/generators/templates/rpush_2_0_0_updates.rb
Defined Under Namespace
Modules: Rpush
Class Method Summary collapse
- .adapter_name ⇒ Object
- .down ⇒ Object
- .postgresql? ⇒ Boolean
- .up ⇒ Object
- .update_type(model, from, to) ⇒ Object
Class Method Details
.adapter_name ⇒ Object
59 60 61 62 63 64 65 66 |
# File 'lib/generators/templates/rpush_2_0_0_updates.rb', line 59 def self.adapter_name env = (defined?(Rails) && Rails.env) ? Rails.env : 'development' if ActiveRecord::VERSION::MAJOR > 6 ActiveRecord::Base.configurations.configs_for(env_name: env).first.configuration_hash[:adapter] else Hash[ActiveRecord::Base.configurations[env].map { |k,v| [k.to_sym,v] }][:adapter] end end |
.down ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/generators/templates/rpush_2_0_0_updates.rb', line 40 def self.down [:Apns, :Gcm, :Wpns, :Adm].each do |service| update_type(Rpush200Updates::Rpush::App, "Rpush::Client::ActiveRecord::#{service}::App", "Rpush::#{service}::App") update_type(Rpush200Updates::Rpush::Notification, "Rpush::Client::ActiveRecord::#{service}::Notification", "Rpush::#{service}::Notification") end change_column :rpush_feedback, :app_id, :string rename_column :rpush_feedback, :app_id, :app if index_name_exists?(:rpush_notifications, :index_rpush_notifications_multi) remove_index :rpush_notifications, name: :index_rpush_notifications_multi end add_index :rpush_notifications, [:app_id, :delivered, :failed, :deliver_after], name: 'index_rpush_notifications_multi' remove_column :rpush_notifications, :priority remove_column :rpush_notifications, :processing end |
.postgresql? ⇒ Boolean
68 69 70 |
# File 'lib/generators/templates/rpush_2_0_0_updates.rb', line 68 def self.postgresql? adapter_name =~ /postgresql|postgis/ end |
.up ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/generators/templates/rpush_2_0_0_updates.rb', line 16 def self.up add_column :rpush_notifications, :processing, :boolean, null: false, default: false add_column :rpush_notifications, :priority, :integer, null: true if index_name_exists?(:rpush_notifications, :index_rpush_notifications_multi) remove_index :rpush_notifications, name: :index_rpush_notifications_multi end add_index :rpush_notifications, [:delivered, :failed], name: 'index_rpush_notifications_multi', where: 'NOT delivered AND NOT failed' rename_column :rpush_feedback, :app, :app_id if postgresql? execute('ALTER TABLE rpush_feedback ALTER COLUMN app_id TYPE integer USING (trim(app_id)::integer)') else change_column :rpush_feedback, :app_id, :integer end [:Apns, :Gcm, :Wpns, :Adm].each do |service| update_type(Rpush200Updates::Rpush::App, "Rpush::#{service}::App", "Rpush::Client::ActiveRecord::#{service}::App") update_type(Rpush200Updates::Rpush::Notification, "Rpush::#{service}::Notification", "Rpush::Client::ActiveRecord::#{service}::Notification") end end |
.update_type(model, from, to) ⇒ Object
12 13 14 |
# File 'lib/generators/templates/rpush_2_0_0_updates.rb', line 12 def self.update_type(model, from, to) model.where(type: from).update_all(type: to) end |