Class: RailsMcpInsight::Analyzers::MigrationAnalyzer

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_mcp_insight/analyzers/migration_analyzer.rb

Overview

Analyzes db/migrate/ directory to build a chronological history of schema changes for any table.

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ MigrationAnalyzer

Returns a new instance of MigrationAnalyzer.



8
9
10
# File 'lib/rails_mcp_insight/analyzers/migration_analyzer.rb', line 8

def initialize(config)
  @config = config
end

Instance Method Details

#analyze(table_name: nil) ⇒ Object

Get migration history for a specific table, or all tables



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/rails_mcp_insight/analyzers/migration_analyzer.rb', line 13

def analyze(table_name: nil)
  migrations_dir = @config.migrations_path
  return [] unless Dir.exist?(migrations_dir)

  files = Dir.glob(File.join(migrations_dir, "*.rb"))

  migrations = files.filter_map do |file|
    parse_migration(file)
  end

  if table_name
    migrations.select { |m| m[:tables_affected].include?(table_name) }
  else
    migrations
  end
end