8 changed files with 40 additions and 6 deletions
@ -0,0 +1,19 @@ |
|||
require 'xz' |
|||
require 'active_record/connection_adapters/postgresql_adapter' |
|||
|
|||
class CompressedText < ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Bytea |
|||
def type |
|||
:compressed_text |
|||
end |
|||
|
|||
def serialize(value) |
|||
return if value.nil? |
|||
value = XZ.compress value, level: 9 |
|||
super value |
|||
end |
|||
|
|||
def deserialize(value) |
|||
return if value.nil? |
|||
XZ.decompress super |
|||
end |
|||
end |
@ -0,0 +1 @@ |
|||
ActiveRecord::Type.register :compressed_text, CompressedText, adapter: :postgresql |
@ -0,0 +1,10 @@ |
|||
class CreateDiffs < ActiveRecord::Migration[5.2] |
|||
def change |
|||
create_table :diffs do |t| |
|||
t.json :content, null: false |
|||
|
|||
t.belongs_to :site, index: true, foreign_key: true, null: false |
|||
t.datetime :created_at, null: false |
|||
end |
|||
end |
|||
end |
Loading…
Reference in new issue