Sha256: b0152bf6b1526a281fdede540383b274eb38aebc54e03ed3a1cce3ec0bbae8c4

Contents?: true

Size: 1.08 KB

Versions: 4

Compression:

Stored size: 1.08 KB

Contents

# This migration comes from alchemy (originally 20160108174834)
class AddTimebasedPublishingColumnsToPages < ActiveRecord::Migration
  def up
    add_column :alchemy_pages, :public_on, :datetime
    add_column :alchemy_pages, :public_until, :datetime
    add_index :alchemy_pages, [:public_on, :public_until]

    update <<-SQL.strip_heredoc
      UPDATE alchemy_pages
      SET public_on = published_at
      WHERE published_at IS NOT NULL AND public=#{ActiveRecord::Base.connection.quoted_true}
    SQL

    remove_column :alchemy_pages, :public
  end

  def down
    add_column :alchemy_pages, :public, :boolean, default: false
    current_time = ActiveRecord::Base.connection.quoted_date(Time.current)

    update <<-SQL.strip_heredoc
      UPDATE alchemy_pages
      SET public = (
        public_on IS NOT NULL AND public_on < '#{current_time}'
        AND (public_until > '#{current_time}' OR public_until IS NULL)
      )
    SQL

    remove_index :alchemy_pages, [:public_on, :public_until]
    remove_column :alchemy_pages, :public_on
    remove_column :alchemy_pages, :public_until
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
alchemy-devise-3.6.0 spec/dummy/db/migrate/20160614164602_add_timebased_publishing_columns_to_pages.alchemy.rb
alchemy-devise-3.5.0 spec/dummy/db/migrate/20160614164602_add_timebased_publishing_columns_to_pages.alchemy.rb
alchemy-devise-3.5.0.beta spec/dummy/db/migrate/20160614164602_add_timebased_publishing_columns_to_pages.alchemy.rb
alchemy-devise-3.4.0 spec/dummy/db/migrate/20160614164602_add_timebased_publishing_columns_to_pages.alchemy.rb