Class: CreateRedirects

Inherits:
Object
  • Object
show all
Defined in:
lib/generators/ruby_cms/templates/db/migrate/20260525130000_create_redirects.rb

Instance Method Summary collapse

Instance Method Details

#changeObject



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/generators/ruby_cms/templates/db/migrate/20260525130000_create_redirects.rb', line 2

def change
  # citext gives us case-insensitive uniqueness on source_path without
  # juggling functional indexes in app code.
  enable_extension "citext" unless extension_enabled?("citext")

  create_table :redirects, if_not_exists: true do |t|
    t.citext   :source_path, null: false
    t.string   :target_path
    t.integer  :status_code, null: false, default: 301
    t.boolean  :enabled,     null: false, default: true
    t.string   :note
    t.bigint   :hits, null: false, default: 0
    t.datetime :last_hit_at

    t.timestamps
  end

  add_index :redirects, :source_path, unique: true, if_not_exists: true
  add_index :redirects, :enabled, if_not_exists: true
  add_index :redirects, :last_hit_at, if_not_exists: true
  add_index :redirects, :hits, if_not_exists: true

  add_check_constraint :redirects,
                       "status_code IN (301, 302, 410)",
                       name: "redirects_status_code_check"
end