Module: StrongMigrations

Defined in:
lib/strong_migrations/checks.rb,
lib/strong_migrations.rb,
lib/strong_migrations/checker.rb,
lib/strong_migrations/railtie.rb,
lib/strong_migrations/version.rb,
lib/strong_migrations/migrator.rb,
lib/strong_migrations/migration.rb,
lib/strong_migrations/safe_methods.rb,
lib/strong_migrations/schema_dumper.rb,
lib/strong_migrations/error_messages.rb,
lib/strong_migrations/migration_context.rb,
lib/strong_migrations/adapters/mysql_adapter.rb,
lib/strong_migrations/adapters/mariadb_adapter.rb,
lib/strong_migrations/adapters/abstract_adapter.rb,
lib/strong_migrations/adapters/postgresql_adapter.rb,
lib/generators/strong_migrations/install_generator.rb

Overview

note: MariaDB inherits from this adapter when making changes, be sure to see how it affects it

Defined Under Namespace

Modules: Adapters, Checks, Generators, Migration, MigrationContext, Migrator, SafeMethods, SchemaDumper Classes: Checker, Error, Railtie, UnsafeMigration, UnsupportedVersion, WrappedConnection

Constant Summary collapse

VERSION =
"2.1.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.alphabetize_schemaObject

Returns the value of attribute alphabetize_schema.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def alphabetize_schema
  @alphabetize_schema
end

.auto_analyzeObject

Returns the value of attribute auto_analyze.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def auto_analyze
  @auto_analyze
end

.check_downObject

Returns the value of attribute check_down.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def check_down
  @check_down
end

.checksObject

Returns the value of attribute checks.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def checks
  @checks
end

.enabled_checksObject

Returns the value of attribute enabled_checks.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def enabled_checks
  @enabled_checks
end

.error_messagesObject

Returns the value of attribute error_messages.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def error_messages
  @error_messages
end

.lock_timeoutObject

Returns the value of attribute lock_timeout.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def lock_timeout
  @lock_timeout
end

.lock_timeout_limitObject



61
62
63
64
65
66
# File 'lib/strong_migrations.rb', line 61

def self.lock_timeout_limit
  unless defined?(@lock_timeout_limit)
    @lock_timeout_limit = developer_env? ? false : 10
  end
  @lock_timeout_limit
end

.lock_timeout_retriesObject

Returns the value of attribute lock_timeout_retries.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def lock_timeout_retries
  @lock_timeout_retries
end

.lock_timeout_retry_delayObject

Returns the value of attribute lock_timeout_retry_delay.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def lock_timeout_retry_delay
  @lock_timeout_retry_delay
end

.remove_invalid_indexesObject

Returns the value of attribute remove_invalid_indexes.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def remove_invalid_indexes
  @remove_invalid_indexes
end

.safe_by_defaultObject

Returns the value of attribute safe_by_default.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def safe_by_default
  @safe_by_default
end

.skipped_databasesObject

Returns the value of attribute skipped_databases.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def skipped_databases
  @skipped_databases
end

.start_afterObject

Returns the value of attribute start_after.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def start_after
  @start_after
end

.statement_timeoutObject

Returns the value of attribute statement_timeout.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def statement_timeout
  @statement_timeout
end

.target_mariadb_versionObject

Returns the value of attribute target_mariadb_version.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def target_mariadb_version
  @target_mariadb_version
end

.target_mysql_versionObject

Returns the value of attribute target_mysql_version.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def target_mysql_version
  @target_mysql_version
end

.target_postgresql_versionObject

Returns the value of attribute target_postgresql_version.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def target_postgresql_version
  @target_postgresql_version
end

.target_sql_modeObject

Returns the value of attribute target_sql_mode.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def target_sql_mode
  @target_sql_mode
end

.target_versionObject

Returns the value of attribute target_version.



28
29
30
# File 'lib/strong_migrations.rb', line 28

def target_version
  @target_version
end

Class Method Details

.add_check(&block) ⇒ Object



68
69
70
# File 'lib/strong_migrations.rb', line 68

def self.add_check(&block)
  checks << block
end

.check_enabled?(check, version: nil) ⇒ Boolean

Returns:

  • (Boolean)


80
81
82
83
84
85
86
87
# File 'lib/strong_migrations.rb', line 80

def self.check_enabled?(check, version: nil)
  if enabled_checks[check]
    start_after = enabled_checks[check][:start_after] || StrongMigrations.start_after
    !version || version > start_after
  else
    false
  end
end

.developer_env?Boolean

private

Returns:

  • (Boolean)


47
48
49
# File 'lib/strong_migrations.rb', line 47

def self.developer_env?
  env == "development" || env == "test"
end

.disable_check(check) ⇒ Object



76
77
78
# File 'lib/strong_migrations.rb', line 76

def self.disable_check(check)
  enabled_checks.delete(check)
end

.enable_check(check, start_after: nil) ⇒ Object



72
73
74
# File 'lib/strong_migrations.rb', line 72

def self.enable_check(check, start_after: nil)
  enabled_checks[check] = {start_after: start_after}
end

.envObject

private



52
53
54
55
56
57
58
59
# File 'lib/strong_migrations.rb', line 52

def self.env
  if defined?(Rails.env)
    Rails.env
  else
    # default to production for safety
    ENV["RACK_ENV"] || "production"
  end
end

.skip_database(database) ⇒ Object



89
90
91
# File 'lib/strong_migrations.rb', line 89

def self.skip_database(database)
  self.skipped_databases << database
end