31 lines
1.1 KiB
Ruby
31 lines
1.1 KiB
Ruby
class CreateNetworkRanges < ActiveRecord::Migration[8.1]
|
|
def change
|
|
create_table :network_ranges do |t|
|
|
t.binary :ip_address, null: false
|
|
t.integer :network_prefix, null: false
|
|
t.integer :ip_version, null: false
|
|
t.string :company
|
|
t.integer :asn
|
|
t.string :asn_org
|
|
t.boolean :is_datacenter, default: false
|
|
t.boolean :is_proxy, default: false
|
|
t.boolean :is_vpn, default: false
|
|
t.string :ip_api_country
|
|
t.string :geo2_country
|
|
t.text :abuser_scores
|
|
t.text :additional_data
|
|
t.timestamp :last_api_fetch
|
|
|
|
t.timestamps
|
|
end
|
|
|
|
# Indexes for common queries
|
|
add_index :network_ranges, [:ip_address, :network_prefix], name: 'idx_network_ranges_ip_range'
|
|
add_index :network_ranges, :asn, name: 'idx_network_ranges_asn'
|
|
add_index :network_ranges, :company, name: 'idx_network_ranges_company'
|
|
add_index :network_ranges, :ip_api_country, name: 'idx_network_ranges_country'
|
|
add_index :network_ranges, [:is_datacenter, :is_proxy, :is_vpn], name: 'idx_network_ranges_flags'
|
|
add_index :network_ranges, :ip_version, name: 'idx_network_ranges_version'
|
|
end
|
|
end
|