Sha256: ad2b6b928a147238528faf41e212fa283bf8a877940a5254f513a4cd23039986

Contents?: true

Size: 1.02 KB

Versions: 9

Compression:

Stored size: 1.02 KB

Contents

class AddTimebasedPublishingColumnsToPages < ActiveRecord::Migration[4.2]
  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

9 entries across 9 versions & 1 rubygems

Version Path
alchemy_cms-4.0.6 db/migrate/20160108174834_add_timebased_publishing_columns_to_pages.rb
alchemy_cms-4.0.5 db/migrate/20160108174834_add_timebased_publishing_columns_to_pages.rb
alchemy_cms-4.0.4 db/migrate/20160108174834_add_timebased_publishing_columns_to_pages.rb
alchemy_cms-4.0.3 db/migrate/20160108174834_add_timebased_publishing_columns_to_pages.rb
alchemy_cms-4.0.2 db/migrate/20160108174834_add_timebased_publishing_columns_to_pages.rb
alchemy_cms-4.0.1 db/migrate/20160108174834_add_timebased_publishing_columns_to_pages.rb
alchemy_cms-4.0.0 db/migrate/20160108174834_add_timebased_publishing_columns_to_pages.rb
alchemy_cms-4.0.0.rc2 db/migrate/20160108174834_add_timebased_publishing_columns_to_pages.rb
alchemy_cms-4.0.0.rc1 db/migrate/20160108174834_add_timebased_publishing_columns_to_pages.rb