activerecord-dbt 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +103 -77
- data/lib/active_record/dbt/column/{test.rb → data_test.rb} +16 -16
- data/lib/active_record/dbt/column/{testable/accepted_values_testable.rb → data_testable/accepted_values_data_testable.rb} +2 -2
- data/lib/active_record/dbt/column/{testable/not_null_testable.rb → data_testable/not_null_data_testable.rb} +2 -2
- data/lib/active_record/dbt/column/{testable/relationships_testable.rb → data_testable/relationships_data_testable.rb} +3 -3
- data/lib/active_record/dbt/column/{testable/unique_testable.rb → data_testable/unique_data_testable.rb} +2 -2
- data/lib/active_record/dbt/column/{column.rb → yml.rb} +7 -7
- data/lib/active_record/dbt/configuration/i18n_configuration.rb +1 -1
- data/lib/active_record/dbt/dbt_package/dbt_utils/table/{testable/unique_combination_of_columns_testable.rb → data_testable/unique_combination_of_columns_data_testable.rb} +2 -2
- data/lib/active_record/dbt/dbt_package/dbterd/column/{testable → data_testable}/relationships_meta_relationship_type.rb +2 -2
- data/lib/active_record/dbt/factory/columns/yml_factory.rb +33 -0
- data/lib/active_record/dbt/factory/model/staging/yml_factory.rb +24 -0
- data/lib/active_record/dbt/factory/source/yml_factory.rb +17 -0
- data/lib/active_record/dbt/factory/table/yml_factory.rb +18 -0
- data/lib/active_record/dbt/factory/tables/yml_factory.rb +17 -0
- data/lib/active_record/dbt/model/staging/base.rb +1 -1
- data/lib/active_record/dbt/model/staging/yml.rb +5 -5
- data/lib/active_record/dbt/seed/enum/base.rb +1 -1
- data/lib/active_record/dbt/seed/enum/yml.rb +8 -8
- data/lib/active_record/dbt/source/yml.rb +8 -4
- data/lib/active_record/dbt/table/{test.rb → data_test.rb} +3 -3
- data/lib/active_record/dbt/table/yml.rb +6 -6
- data/lib/active_record/dbt/version.rb +1 -1
- data/lib/generators/active_record/dbt/config/templates/source_config.yml.tt +2 -2
- data/lib/generators/active_record/dbt/enum/USAGE +2 -2
- data/lib/generators/active_record/dbt/initializer/templates/dbt.rb +9 -7
- data/lib/generators/active_record/dbt/source/USAGE +1 -1
- data/lib/generators/active_record/dbt/source/source_generator.rb +3 -4
- data/lib/generators/active_record/dbt/staging_model/USAGE +2 -2
- data/lib/generators/active_record/dbt/staging_model/staging_model_generator.rb +1 -1
- metadata +16 -16
- data/lib/active_record/dbt/factory/columns_factory.rb +0 -31
- data/lib/active_record/dbt/factory/model/staging_factory.rb +0 -22
- data/lib/active_record/dbt/factory/source_factory.rb +0 -15
- data/lib/active_record/dbt/factory/table_factory.rb +0 -16
- data/lib/active_record/dbt/factory/tables_factory.rb +0 -15
@@ -3,30 +3,30 @@
|
|
3
3
|
module ActiveRecord
|
4
4
|
module Dbt
|
5
5
|
module Column
|
6
|
-
class
|
6
|
+
class Yml
|
7
7
|
include ActiveRecord::Dbt::DataType::Mapper
|
8
8
|
include ActiveRecord::Dbt::I18nWrapper::Translate
|
9
9
|
|
10
|
-
attr_reader :table_name, :column, :
|
10
|
+
attr_reader :table_name, :column, :column_data_test, :primary_keys
|
11
11
|
|
12
12
|
delegate :name, :comment, to: :column, prefix: true
|
13
13
|
delegate :source_config, to: :@config
|
14
14
|
|
15
|
-
def initialize(table_name, column,
|
15
|
+
def initialize(table_name, column, column_data_test, primary_keys: [])
|
16
16
|
@table_name = table_name
|
17
17
|
@column = column
|
18
|
-
@
|
18
|
+
@column_data_test = column_data_test
|
19
19
|
@primary_keys = primary_keys
|
20
20
|
@config = ActiveRecord::Dbt::Config.instance
|
21
21
|
end
|
22
22
|
|
23
|
-
def
|
23
|
+
def properties
|
24
24
|
{
|
25
25
|
'name' => column_name,
|
26
26
|
'description' => description,
|
27
27
|
'data_type' => data_type(column.type),
|
28
|
-
**column_overrides.except(:
|
29
|
-
'
|
28
|
+
**column_overrides.except(:data_tests),
|
29
|
+
'data_tests' => column_data_test.properties
|
30
30
|
}.compact
|
31
31
|
end
|
32
32
|
|
@@ -5,7 +5,7 @@ module ActiveRecord
|
|
5
5
|
module Configuration
|
6
6
|
module I18nConfiguration
|
7
7
|
def locale=(locale = I18n.locale)
|
8
|
-
I18n.load_path +=
|
8
|
+
I18n.load_path += Rails.root.glob('config/locales/**/*.{rb,yml}')
|
9
9
|
I18n.locale = locale
|
10
10
|
end
|
11
11
|
end
|
@@ -5,8 +5,8 @@ module ActiveRecord
|
|
5
5
|
module DbtPackage
|
6
6
|
module DbtUtils
|
7
7
|
module Table
|
8
|
-
module
|
9
|
-
module
|
8
|
+
module DataTestable
|
9
|
+
module UniqueCombinationOfColumnsDataTestable
|
10
10
|
extend ActiveRecord::Dbt::RequiredMethods
|
11
11
|
|
12
12
|
define_required_methods :table_name, :@config
|
@@ -5,7 +5,7 @@ module ActiveRecord
|
|
5
5
|
module DbtPackage
|
6
6
|
module Dbterd
|
7
7
|
module Column
|
8
|
-
module
|
8
|
+
module DataTestable
|
9
9
|
module RelationshipsMetaRelationshipType
|
10
10
|
extend ActiveRecord::Dbt::RequiredMethods
|
11
11
|
|
@@ -89,7 +89,7 @@ module ActiveRecord
|
|
89
89
|
end
|
90
90
|
|
91
91
|
def association_klass(association)
|
92
|
-
association.
|
92
|
+
association.class_name.constantize
|
93
93
|
rescue NoMethodError
|
94
94
|
association.options.fetch(:through).to_s.classify.constantize
|
95
95
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ActiveRecord
|
4
|
+
module Dbt
|
5
|
+
module Factory
|
6
|
+
module Columns
|
7
|
+
module YmlFactory
|
8
|
+
def self.build(
|
9
|
+
table_name,
|
10
|
+
primary_keys: ActiveRecord::Base.connection.primary_keys(table_name),
|
11
|
+
foreign_keys: ActiveRecord::Base.connection.foreign_keys(table_name)
|
12
|
+
)
|
13
|
+
ActiveRecord::Base.connection.columns(table_name).map do |column|
|
14
|
+
column_data_test = ActiveRecord::Dbt::Column::DataTest.new(
|
15
|
+
table_name,
|
16
|
+
column,
|
17
|
+
primary_keys: primary_keys,
|
18
|
+
foreign_keys: foreign_keys
|
19
|
+
)
|
20
|
+
|
21
|
+
ActiveRecord::Dbt::Column::Yml.new(
|
22
|
+
table_name,
|
23
|
+
column,
|
24
|
+
column_data_test,
|
25
|
+
primary_keys: primary_keys
|
26
|
+
)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ActiveRecord
|
4
|
+
module Dbt
|
5
|
+
module Factory
|
6
|
+
module Model
|
7
|
+
module Staging
|
8
|
+
module YmlFactory
|
9
|
+
def self.build(table_name)
|
10
|
+
table_factory = ActiveRecord::Dbt::Factory::Table::YmlFactory.build(table_name)
|
11
|
+
yml = ActiveRecord::Dbt::Model::Staging::Yml.new(table_factory)
|
12
|
+
struct = Struct.new(:export_path, :dump, keyword_init: true)
|
13
|
+
|
14
|
+
struct.new(
|
15
|
+
export_path: yml.export_path,
|
16
|
+
dump: yml.dump
|
17
|
+
)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ActiveRecord
|
4
|
+
module Dbt
|
5
|
+
module Factory
|
6
|
+
module Source
|
7
|
+
module YmlFactory
|
8
|
+
def self.build
|
9
|
+
tables_factory = ActiveRecord::Dbt::Factory::Tables::YmlFactory.build
|
10
|
+
|
11
|
+
ActiveRecord::Dbt::Source::Yml.new(tables_factory)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ActiveRecord
|
4
|
+
module Dbt
|
5
|
+
module Factory
|
6
|
+
module Table
|
7
|
+
module YmlFactory
|
8
|
+
def self.build(table_name)
|
9
|
+
table_data_test = ActiveRecord::Dbt::Table::DataTest.new(table_name)
|
10
|
+
columns = ActiveRecord::Dbt::Factory::Columns::YmlFactory.build(table_name)
|
11
|
+
|
12
|
+
ActiveRecord::Dbt::Table::Yml.new(table_name, table_data_test, columns)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ActiveRecord
|
4
|
+
module Dbt
|
5
|
+
module Factory
|
6
|
+
module Tables
|
7
|
+
module YmlFactory
|
8
|
+
def self.build
|
9
|
+
ActiveRecord::Base.connection.tables.sort.map do |table_name|
|
10
|
+
ActiveRecord::Dbt::Factory::Table::YmlFactory.build(table_name)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -22,18 +22,18 @@ module ActiveRecord
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def dump
|
25
|
-
YAML.dump(
|
25
|
+
YAML.dump(properties.deep_stringify_keys)
|
26
26
|
end
|
27
27
|
|
28
28
|
private
|
29
29
|
|
30
|
-
def
|
30
|
+
def properties
|
31
31
|
{
|
32
32
|
'version' => 2,
|
33
33
|
'models' => [
|
34
34
|
{
|
35
35
|
'name' => model_name,
|
36
|
-
**table.
|
36
|
+
**table.properties.except('name', 'columns'),
|
37
37
|
'columns' => override_columns
|
38
38
|
}
|
39
39
|
]
|
@@ -41,7 +41,7 @@ module ActiveRecord
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def columns
|
44
|
-
@columns ||= sort_columns(table.
|
44
|
+
@columns ||= sort_columns(table.properties['columns'])
|
45
45
|
end
|
46
46
|
|
47
47
|
def sort_columns(columns)
|
@@ -79,7 +79,7 @@ module ActiveRecord
|
|
79
79
|
end
|
80
80
|
|
81
81
|
def add_relationship_test(column)
|
82
|
-
column['
|
82
|
+
column['data_tests'].push(relationships_test(column['name']))
|
83
83
|
end
|
84
84
|
|
85
85
|
def rename_primary_id_in_column(column)
|
@@ -5,8 +5,8 @@ module ActiveRecord
|
|
5
5
|
module Seed
|
6
6
|
module Enum
|
7
7
|
class Yml
|
8
|
-
include ActiveRecord::Dbt::Column::
|
9
|
-
include ActiveRecord::Dbt::Column::
|
8
|
+
include ActiveRecord::Dbt::Column::DataTestable::UniqueDataTestable
|
9
|
+
include ActiveRecord::Dbt::Column::DataTestable::NotNullDataTestable
|
10
10
|
include ActiveRecord::Dbt::DataType::Mapper
|
11
11
|
include ActiveRecord::Dbt::I18nWrapper::Translate
|
12
12
|
include ActiveRecord::Dbt::Seed::Enum::Base
|
@@ -20,12 +20,12 @@ module ActiveRecord
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def dump
|
23
|
-
YAML.dump(
|
23
|
+
YAML.dump(properties.deep_stringify_keys)
|
24
24
|
end
|
25
25
|
|
26
26
|
private
|
27
27
|
|
28
|
-
def
|
28
|
+
def properties
|
29
29
|
{
|
30
30
|
'version' => 2,
|
31
31
|
'seeds' => [
|
@@ -81,7 +81,7 @@ module ActiveRecord
|
|
81
81
|
{
|
82
82
|
'name' => "#{enum_column_name}_before_type_of_cast",
|
83
83
|
'description' => translated_attribute_name,
|
84
|
-
'
|
84
|
+
'data_tests' => data_tests
|
85
85
|
}.compact
|
86
86
|
end
|
87
87
|
|
@@ -89,7 +89,7 @@ module ActiveRecord
|
|
89
89
|
{
|
90
90
|
'name' => "#{enum_column_name}_key",
|
91
91
|
'description' => "#{translated_attribute_name}(key)",
|
92
|
-
'
|
92
|
+
'data_tests' => data_tests
|
93
93
|
}.compact
|
94
94
|
end
|
95
95
|
|
@@ -99,13 +99,13 @@ module ActiveRecord
|
|
99
99
|
{
|
100
100
|
'name' => "#{enum_column_name}_#{locale}",
|
101
101
|
'description' => "#{translated_attribute_name}(#{locale})",
|
102
|
-
'
|
102
|
+
'data_tests' => data_tests
|
103
103
|
}.compact
|
104
104
|
)
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
108
|
-
def
|
108
|
+
def data_tests
|
109
109
|
[
|
110
110
|
unique_test,
|
111
111
|
not_null_test
|
@@ -6,20 +6,24 @@ module ActiveRecord
|
|
6
6
|
class Yml
|
7
7
|
attr_reader :tables
|
8
8
|
|
9
|
-
delegate :source_config, to: :@config
|
9
|
+
delegate :source_config, :export_directory_path, :source_name, to: :@config
|
10
10
|
|
11
11
|
def initialize(tables)
|
12
12
|
@tables = tables
|
13
13
|
@config = ActiveRecord::Dbt::Config.instance
|
14
14
|
end
|
15
15
|
|
16
|
+
def export_path
|
17
|
+
"#{export_directory_path}/models/sources/#{source_name}/src_#{source_name}.yml"
|
18
|
+
end
|
19
|
+
|
16
20
|
def dump
|
17
|
-
YAML.dump(
|
21
|
+
YAML.dump(properties.deep_stringify_keys)
|
18
22
|
end
|
19
23
|
|
20
24
|
private
|
21
25
|
|
22
|
-
def
|
26
|
+
def properties
|
23
27
|
{
|
24
28
|
'version' => 2,
|
25
29
|
'sources' => [
|
@@ -33,7 +37,7 @@ module ActiveRecord
|
|
33
37
|
end
|
34
38
|
|
35
39
|
def tables_properties
|
36
|
-
tables.map(&:
|
40
|
+
tables.map(&:properties)
|
37
41
|
end
|
38
42
|
end
|
39
43
|
end
|
@@ -3,12 +3,12 @@
|
|
3
3
|
module ActiveRecord
|
4
4
|
module Dbt
|
5
5
|
module Table
|
6
|
-
class
|
7
|
-
include ActiveRecord::Dbt::DbtPackage::DbtUtils::Table::
|
6
|
+
class DataTest
|
7
|
+
include ActiveRecord::Dbt::DbtPackage::DbtUtils::Table::DataTestable::UniqueCombinationOfColumnsDataTestable
|
8
8
|
|
9
9
|
include ActiveRecord::Dbt::Table::Base
|
10
10
|
|
11
|
-
def
|
11
|
+
def properties
|
12
12
|
[
|
13
13
|
*unique_combination_of_columns_test
|
14
14
|
].compact.presence
|
@@ -7,20 +7,20 @@ module ActiveRecord
|
|
7
7
|
include ActiveRecord::Dbt::I18nWrapper::Translate
|
8
8
|
include ActiveRecord::Dbt::Table::Base
|
9
9
|
|
10
|
-
attr_reader :
|
10
|
+
attr_reader :table_data_test, :columns
|
11
11
|
|
12
12
|
delegate :source_config, to: :@config
|
13
13
|
|
14
|
-
def initialize(table_name,
|
14
|
+
def initialize(table_name, table_data_test, columns)
|
15
15
|
super(table_name)
|
16
|
-
@
|
16
|
+
@table_data_test = table_data_test
|
17
17
|
@columns = columns
|
18
18
|
end
|
19
19
|
|
20
|
-
def
|
20
|
+
def properties
|
21
21
|
{
|
22
22
|
**table_properties,
|
23
|
-
'columns' => columns.map(&:
|
23
|
+
'columns' => columns.map(&:properties)
|
24
24
|
}.compact
|
25
25
|
end
|
26
26
|
|
@@ -31,7 +31,7 @@ module ActiveRecord
|
|
31
31
|
'name' => table_name,
|
32
32
|
'description' => description,
|
33
33
|
**table_overrides.except(:columns),
|
34
|
-
'
|
34
|
+
'data_tests' => table_data_test.properties
|
35
35
|
}
|
36
36
|
end
|
37
37
|
|
@@ -11,7 +11,7 @@ table_overrides:
|
|
11
11
|
meta: {<dictionary>}
|
12
12
|
identifier: <table_name>
|
13
13
|
loaded_at_field: <column_name>
|
14
|
-
|
14
|
+
data_tests:
|
15
15
|
- <test>
|
16
16
|
tags: [<string>]
|
17
17
|
freshness:
|
@@ -31,7 +31,7 @@ table_overrides:
|
|
31
31
|
<column_name>:
|
32
32
|
meta: {<dictionary>}
|
33
33
|
quote: true | false
|
34
|
-
|
34
|
+
data_tests:
|
35
35
|
- <test>
|
36
36
|
tags: [<string>]
|
37
37
|
|
@@ -5,5 +5,5 @@ Example:
|
|
5
5
|
bin/rails generate active_record:dbt:enum TABLE_NAME ENUM_COLUMN_NAME
|
6
6
|
|
7
7
|
This will create:
|
8
|
-
#{export_directory_path}/seed_#{source_name}__#{table_name_singularize}_enum_#{enum_pluralized}.csv
|
9
|
-
#{export_directory_path}/seed_#{source_name}__#{table_name_singularize}_enum_#{enum_pluralized}.yml
|
8
|
+
#{export_directory_path}/seeds/#{source_name}/seed_#{source_name}__#{table_name_singularize}_enum_#{enum_pluralized}.csv
|
9
|
+
#{export_directory_path}/seeds/#{source_name}/seed_#{source_name}__#{table_name_singularize}_enum_#{enum_pluralized}.yml
|
@@ -1,11 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
if Rails.env.development?
|
4
|
+
require 'active_record/dbt'
|
4
5
|
|
5
|
-
ActiveRecord::Dbt.configure do |c|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
ActiveRecord::Dbt.configure do |c|
|
7
|
+
c.config_directory_path = 'lib/dbt'
|
8
|
+
c.export_directory_path = 'doc/dbt'
|
9
|
+
c.dwh_platform = 'bigquery'
|
10
|
+
c.data_sync_delayed = false
|
11
|
+
c.used_dbt_package_names = []
|
12
|
+
end
|
11
13
|
end
|
@@ -7,14 +7,13 @@ module ActiveRecord
|
|
7
7
|
source_root File.expand_path('templates', __dir__)
|
8
8
|
|
9
9
|
def create_source_yml_file
|
10
|
-
create_file
|
11
|
-
ActiveRecord::Dbt::Factory::SourceFactory.build
|
10
|
+
create_file yml.export_path, yml.dump
|
12
11
|
end
|
13
12
|
|
14
13
|
private
|
15
14
|
|
16
|
-
def
|
17
|
-
@
|
15
|
+
def yml
|
16
|
+
@yml ||= ActiveRecord::Dbt::Factory::Source::YmlFactory.build
|
18
17
|
end
|
19
18
|
end
|
20
19
|
end
|
@@ -5,5 +5,5 @@ Example:
|
|
5
5
|
bin/rails generate active_record:dbt:staging_model TABLE_NAME
|
6
6
|
|
7
7
|
This will create:
|
8
|
-
#{export_directory_path}/stg_#{source_name}__#{table_name}.sql
|
9
|
-
#{export_directory_path}/stg_#{source_name}__#{table_name}.yml
|
8
|
+
#{export_directory_path}/models/staging/#{source_name}/stg_#{source_name}__#{table_name}.sql
|
9
|
+
#{export_directory_path}/models/staging/#{source_name}/stg_#{source_name}__#{table_name}.yml
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-dbt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- yamotech
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -64,12 +64,12 @@ files:
|
|
64
64
|
- README.md
|
65
65
|
- Rakefile
|
66
66
|
- lib/active_record/dbt.rb
|
67
|
-
- lib/active_record/dbt/column/
|
68
|
-
- lib/active_record/dbt/column/
|
69
|
-
- lib/active_record/dbt/column/
|
70
|
-
- lib/active_record/dbt/column/
|
71
|
-
- lib/active_record/dbt/column/
|
72
|
-
- lib/active_record/dbt/column/
|
67
|
+
- lib/active_record/dbt/column/data_test.rb
|
68
|
+
- lib/active_record/dbt/column/data_testable/accepted_values_data_testable.rb
|
69
|
+
- lib/active_record/dbt/column/data_testable/not_null_data_testable.rb
|
70
|
+
- lib/active_record/dbt/column/data_testable/relationships_data_testable.rb
|
71
|
+
- lib/active_record/dbt/column/data_testable/unique_data_testable.rb
|
72
|
+
- lib/active_record/dbt/column/yml.rb
|
73
73
|
- lib/active_record/dbt/config.rb
|
74
74
|
- lib/active_record/dbt/configuration/data_sync.rb
|
75
75
|
- lib/active_record/dbt/configuration/dwh_platform.rb
|
@@ -79,13 +79,13 @@ files:
|
|
79
79
|
- lib/active_record/dbt/configuration/source.rb
|
80
80
|
- lib/active_record/dbt/configuration/used_dbt_package.rb
|
81
81
|
- lib/active_record/dbt/data_type/mapper.rb
|
82
|
-
- lib/active_record/dbt/dbt_package/dbt_utils/table/
|
83
|
-
- lib/active_record/dbt/dbt_package/dbterd/column/
|
84
|
-
- lib/active_record/dbt/factory/
|
85
|
-
- lib/active_record/dbt/factory/model/
|
86
|
-
- lib/active_record/dbt/factory/
|
87
|
-
- lib/active_record/dbt/factory/
|
88
|
-
- lib/active_record/dbt/factory/
|
82
|
+
- lib/active_record/dbt/dbt_package/dbt_utils/table/data_testable/unique_combination_of_columns_data_testable.rb
|
83
|
+
- lib/active_record/dbt/dbt_package/dbterd/column/data_testable/relationships_meta_relationship_type.rb
|
84
|
+
- lib/active_record/dbt/factory/columns/yml_factory.rb
|
85
|
+
- lib/active_record/dbt/factory/model/staging/yml_factory.rb
|
86
|
+
- lib/active_record/dbt/factory/source/yml_factory.rb
|
87
|
+
- lib/active_record/dbt/factory/table/yml_factory.rb
|
88
|
+
- lib/active_record/dbt/factory/tables/yml_factory.rb
|
89
89
|
- lib/active_record/dbt/i18n_wrapper/translate.rb
|
90
90
|
- lib/active_record/dbt/model/staging/base.rb
|
91
91
|
- lib/active_record/dbt/model/staging/sql.rb
|
@@ -97,7 +97,7 @@ files:
|
|
97
97
|
- lib/active_record/dbt/seed/enum/yml.rb
|
98
98
|
- lib/active_record/dbt/source/yml.rb
|
99
99
|
- lib/active_record/dbt/table/base.rb
|
100
|
-
- lib/active_record/dbt/table/
|
100
|
+
- lib/active_record/dbt/table/data_test.rb
|
101
101
|
- lib/active_record/dbt/table/yml.rb
|
102
102
|
- lib/active_record/dbt/version.rb
|
103
103
|
- lib/generators/active_record/dbt/config/USAGE
|
@@ -1,31 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module ActiveRecord
|
4
|
-
module Dbt
|
5
|
-
module Factory
|
6
|
-
module ColumnsFactory
|
7
|
-
def self.build(
|
8
|
-
table_name,
|
9
|
-
primary_keys: ActiveRecord::Base.connection.primary_keys(table_name),
|
10
|
-
foreign_keys: ActiveRecord::Base.connection.foreign_keys(table_name)
|
11
|
-
)
|
12
|
-
ActiveRecord::Base.connection.columns(table_name).map do |column|
|
13
|
-
column_test = ActiveRecord::Dbt::Column::Test.new(
|
14
|
-
table_name,
|
15
|
-
column,
|
16
|
-
primary_keys: primary_keys,
|
17
|
-
foreign_keys: foreign_keys
|
18
|
-
)
|
19
|
-
|
20
|
-
ActiveRecord::Dbt::Column::Column.new(
|
21
|
-
table_name,
|
22
|
-
column,
|
23
|
-
column_test,
|
24
|
-
primary_keys: primary_keys
|
25
|
-
)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module ActiveRecord
|
4
|
-
module Dbt
|
5
|
-
module Factory
|
6
|
-
module Model
|
7
|
-
module StagingFactory
|
8
|
-
def self.build(table_name)
|
9
|
-
table_factory = ActiveRecord::Dbt::Factory::TableFactory.build(table_name)
|
10
|
-
yml = ActiveRecord::Dbt::Model::Staging::Yml.new(table_factory)
|
11
|
-
struct = Struct.new(:export_path, :dump, keyword_init: true)
|
12
|
-
|
13
|
-
struct.new(
|
14
|
-
export_path: yml.export_path,
|
15
|
-
dump: yml.dump
|
16
|
-
)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module ActiveRecord
|
4
|
-
module Dbt
|
5
|
-
module Factory
|
6
|
-
module SourceFactory
|
7
|
-
def self.build
|
8
|
-
tables_factory = ActiveRecord::Dbt::Factory::TablesFactory.build
|
9
|
-
|
10
|
-
ActiveRecord::Dbt::Source::Yml.new(tables_factory).dump
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module ActiveRecord
|
4
|
-
module Dbt
|
5
|
-
module Factory
|
6
|
-
module TableFactory
|
7
|
-
def self.build(table_name)
|
8
|
-
table_test = ActiveRecord::Dbt::Table::Test.new(table_name)
|
9
|
-
columns = ActiveRecord::Dbt::Factory::ColumnsFactory.build(table_name)
|
10
|
-
|
11
|
-
ActiveRecord::Dbt::Table::Yml.new(table_name, table_test, columns)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|