Sha256: 9f654b8326eb3408758040ba47d2794bca13b56598212f8772df40617f8e529b

Contents?: true

Size: 1.46 KB

Versions: 4

Compression:

Stored size: 1.46 KB

Contents

# frozen_string_literal: true

class CreateLoggableActivityTables < ActiveRecord::Migration[7.1]
  def change
    create_table :loggable_activity_encryption_keys do |t|
      t.references :record, polymorphic: true, null: true, index: true
      t.string :secret_key
      t.datetime :delete_at

      t.timestamps
    end

    create_table :loggable_activity_activities do |t|
      t.string :action
      t.references :actor, polymorphic: true, null: true
      t.string :encrypted_actor_name
      t.references :record, polymorphic: true, null: true

      t.timestamps
    end

    create_table :loggable_activity_payloads do |t|
      t.references :activity, null: false, foreign_key: { to_table: 'loggable_activity_activities' }
      t.references :encryption_key, null: false, foreign_key: { to_table: 'loggable_activity_encryption_keys' }
      t.references :record, polymorphic: true, null: true, index: true
      t.string :encrypted_record_name
      t.json :encrypted_attrs
      t.integer :related_to_activity_as, default: 0
      t.boolean :data_owner, default: false
      t.string :route
      t.boolean :current_payload, default: true
      t.json :public_attrs, default: {}

      t.timestamps
    end

    create_table :loggable_activity_data_owners do |t|
      t.references :record, polymorphic: true, null: true, index: true
      t.references :encryption_key, null: false, foreign_key: { to_table: 'loggable_activity_encryption_keys' }

      t.timestamps
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
loggable_activity-0.5.7 db/migrate/20240702092648_create_loggable_activity_tables.rb
loggable_activity-0.5.6 db/migrate/20240702092648_create_loggable_activity_tables.rb
loggable_activity-0.5.4 db/migrate/20240702092648_create_loggable_activity_tables.rb
loggable_activity-0.5.0 db/migrate/20240702092648_create_loggable_activity_tables.rb