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

Constant Summary collapse

VERSION =
"1.2.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.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



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

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



54
55
56
# File 'lib/strong_migrations.rb', line 54

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

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

Returns:

  • (Boolean)


66
67
68
69
70
71
72
73
# File 'lib/strong_migrations.rb', line 66

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)


43
44
45
# File 'lib/strong_migrations.rb', line 43

def self.developer_env?
  defined?(Rails) && (Rails.env.development? || Rails.env.test?)
end

.disable_check(check) ⇒ Object



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

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

.enable_check(check, start_after: nil) ⇒ Object



58
59
60
# File 'lib/strong_migrations.rb', line 58

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