Module: DmRails

Defined in:
lib/dm_rails.rb,
lib/dm_rails/railtie.rb,
lib/dm_rails/version.rb,
lib/dm_rails/introspection.rb

Overview

dm-rails —— 让 Rails 经 MySQL 协议代理(ShardingSphere-Proxy)运行在达梦 DM8 上。

启用条件(满足其一): ENV = "1" (或兼容旧开关 ENV = "1")

可配置项(环境变量): DM_RAILS_VIEW —— 达梦侧列结构视图名,默认 dm_rails_columns(见 sql/dm_rails_columns.sql)

Defined Under Namespace

Modules: Introspection Classes: Railtie

Constant Summary collapse

VERSION =
"0.1.1"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.json_columnsObject



27
28
29
30
31
32
# File 'lib/dm_rails.rb', line 27

def json_columns
  @json_columns ||= ENV.fetch("DM_RAILS_JSON_COLUMNS", "").split(",").each_with_object({}) do |pair, h|
    tbl, col = pair.strip.split(".", 2)
    (h[tbl] ||= []) << col if tbl && col
  end
end

Class Method Details

.enabled?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/dm_rails.rb', line 14

def enabled?
  ENV["DM_RAILS_ENABLED"] == "1" || ENV["DM_PROXY"] == "1"
end

.view_nameObject



18
19
20
# File 'lib/dm_rails.rb', line 18

def view_name
  ENV.fetch("DM_RAILS_VIEW", "dm_rails_columns")
end

.view_sqlObject

达梦侧辅助视图的建视图 SQL(用达梦客户端在业务 schema 下执行,勿经代理执行)



35
36
37
38
# File 'lib/dm_rails.rb', line 35

def view_sql
  File.read(File.expand_path("../sql/dm_rails_columns.sql", __dir__))
      .gsub("dm_rails_columns", view_name)
end