Sha256: bb9542099aeda0548222851b020c981c484e6759c09ec19589a3f03575f730b3

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

Sequel.migration do
  up do
    alter_table :custom_field_values do
      add_foreign_key :revision_id, :revisions,
        :on_update => :cascade,
        :on_delete => :cascade,
        :key       => :id
    end

    # Create a revision for each existing entry.
    entries = Zen.database[:section_entries] \
      .select(:id, :user_id) \
      .order(:id.asc)

    entries.each do |entry|
      rev_id = Zen.database[:revisions].insert(
        :created_at       => Time.now,
        :user_id          => entry[:user_id],
        :section_entry_id => entry[:id]
      )

      Zen.database[:section_entries] \
        .filter(:id => entry[:id]) \
        .update(:revision_id => rev_id)

      Zen.database[:custom_field_values] \
        .filter(:section_entry_id => entry[:id]) \
        .update(:revision_id => rev_id)
    end
  end

  down do
    alter_table :custom_field_values do
      if Zen.database.database_type.to_s.include?('mysql')
        drop_constraint :custom_field_values_ibfk_3, :type => :foreign_key
      end

      drop_column :revision_id
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
zen-0.4.3 lib/zen/package/custom_fields/migrations/1336171490_revisions.rb