Sha256: a2b596f6219dbbad89ed21e922a8d7d0d57b276ad9acec0f51dc6f9b3a7abf1c

Contents?: true

Size: 1.11 KB

Versions: 4

Compression:

Stored size: 1.11 KB

Contents

module DbMemoize
  class Migrations
    class << self
      def create_tables(migration)
        migration.execute <<~SQL
          CREATE SCHEMA IF NOT EXISTS db_memoize;

          CREATE TABLE IF NOT EXISTS db_memoize.memoized_values (
            entity_table_name varchar NOT NULL,
            entity_id         integer NOT NULL,
            method_name       varchar NOT NULL,

            val_string        varchar,
            val_integer       bigint,
            val_float         double precision,
            val_time          timestamp without time zone,
            val_object        jsonb,
            val_boolean       boolean,
            val_nil           boolean,
            created_at        timestamp without time zone NOT NULL
          );

          -- entity_id/entity_table_name should have a better chance to be useful, since
          -- there is more variance in entity_ids than there is in entity_table_names.
          CREATE UNIQUE INDEX IF NOT EXISTS memoized_attributes_idx2
            ON db_memoize.memoized_values(entity_id, entity_table_name, method_name);
        SQL
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
db_memoize-0.3.11 lib/db_memoize/migrations.rb
db_memoize-0.3.10 lib/db_memoize/migrations.rb
db_memoize-0.3.9 lib/db_memoize/migrations.rb
db_memoize-0.3.8 lib/db_memoize/migrations.rb