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/database_tasks.rb,
lib/strong_migrations/error_messages.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, DatabaseTasks, Generators, Migration, Migrator, SafeMethods, SchemaDumper Classes: Checker, Error, Railtie, UnsafeMigration, UnsupportedVersion, WrappedConnection

Constant Summary collapse

VERSION =
"1.8.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



59
60
61
62
63
64
# File 'lib/strong_migrations.rb', line 59

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

.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

.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



66
67
68
# File 'lib/strong_migrations.rb', line 66

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

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

Returns:

  • (Boolean)


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

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)


45
46
47
# File 'lib/strong_migrations.rb', line 45

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

.disable_check(check) ⇒ Object



74
75
76
# File 'lib/strong_migrations.rb', line 74

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

.enable_check(check, start_after: nil) ⇒ Object



70
71
72
# File 'lib/strong_migrations.rb', line 70

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

.envObject

private



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

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