Class: ClickhouseRuby::ActiveRecord::SchemaDumper

Inherits:
ActiveRecord::SchemaDumper
  • Object
show all
Defined in:
lib/clickhouse_ruby/active_record/schema_dumper.rb

Overview

Custom schema dumper for ClickHouse databases

Extends ActiveRecord::SchemaDumper to properly dump ClickHouse-specific schema elements like engines, ORDER BY, PARTITION BY, and SETTINGS.

Examples:

Usage

# Automatically used when running:
rails db:schema:dump

Manual usage

File.open("db/schema.rb", "w") do |file|
  ClickhouseRuby::ActiveRecord::SchemaDumper.dump(connection, file)
end

Class Method Summary collapse

Class Method Details

.dump(connection = ::ActiveRecord::Base.connection, stream = $stdout, _config = nil) ⇒ void

This method returns an undefined value.

Dump the schema to a stream

Parameters:

  • connection (ConnectionAdapter) (defaults to: ::ActiveRecord::Base.connection)

    the database connection

  • stream (IO) (defaults to: $stdout)

    the output stream

  • _config (ActiveRecord::DatabaseConfigurations::DatabaseConfig) (defaults to: nil)

    database config (unused)



28
29
30
31
# File 'lib/clickhouse_ruby/active_record/schema_dumper.rb', line 28

def self.dump(connection = ::ActiveRecord::Base.connection, stream = $stdout, _config = nil)
  new(connection, generate_options).dump(stream)
  stream
end

.generate_optionsHash

Generate options for the dumper

Returns:

  • (Hash)

    dumper options



36
37
38
39
40
41
# File 'lib/clickhouse_ruby/active_record/schema_dumper.rb', line 36

def self.generate_options
  {
    table_name_prefix: ::ActiveRecord::Base.table_name_prefix,
    table_name_suffix: ::ActiveRecord::Base.table_name_suffix,
  }
end