ardb 0.28.3 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -7
- data/.l.yml +9 -0
- data/.rubocop.yml +3 -0
- data/.ruby-version +1 -0
- data/.t.yml +6 -0
- data/Gemfile +24 -8
- data/README.md +252 -3
- data/ardb.gemspec +14 -10
- data/bin/ardb +3 -1
- data/lib/ardb/adapter/base.rb +72 -47
- data/lib/ardb/adapter/mysql.rb +4 -17
- data/lib/ardb/adapter/postgresql.rb +51 -46
- data/lib/ardb/adapter/sqlite.rb +11 -15
- data/lib/ardb/adapter_spy.rb +18 -30
- data/lib/ardb/cli/clirb.rb +16 -18
- data/lib/ardb/cli/commands.rb +308 -129
- data/lib/ardb/cli.rb +29 -24
- data/lib/ardb/db_tests.rb +4 -4
- data/lib/ardb/default_order_by.rb +13 -21
- data/lib/ardb/migration.rb +15 -16
- data/lib/ardb/record_spy.rb +46 -61
- data/lib/ardb/relation_spy.rb +28 -32
- data/lib/ardb/require_autoloaded_active_record_files.rb +258 -57
- data/lib/ardb/test_helpers.rb +33 -29
- data/lib/ardb/use_db_default.rb +13 -21
- data/lib/ardb/version.rb +3 -1
- data/lib/ardb.rb +105 -86
- data/script/determine_autoloaded_active_record_files.rb +31 -24
- data/test/helper.rb +6 -13
- data/test/support/factory.rb +4 -3
- data/test/support/fake_schema.rb +3 -1
- data/test/support/postgresql/migrations/{.gitkeep → .keep} +0 -0
- data/test/support/postgresql/schema.rb +2 -1
- data/test/support/postgresql/setup_test_db.rb +23 -21
- data/test/support/relative_require_test_db_file.rb +1 -0
- data/test/support/require_test_db_file.rb +1 -0
- data/test/system/.keep +0 -0
- data/test/unit/adapter/base_tests.rb +80 -55
- data/test/unit/adapter/mysql_tests.rb +4 -19
- data/test/unit/adapter/postgresql_tests.rb +21 -30
- data/test/unit/adapter/sqlite_tests.rb +5 -11
- data/test/unit/adapter_spy_tests.rb +6 -17
- data/test/unit/ardb_tests.rb +75 -53
- data/test/unit/cli_tests.rb +234 -158
- data/test/unit/db_tests_tests.rb +7 -7
- data/test/unit/default_order_by_tests.rb +26 -24
- data/test/unit/migration_tests.rb +17 -18
- data/test/unit/record_spy_tests.rb +45 -41
- data/test/unit/relation_spy_tests.rb +40 -63
- data/test/unit/test_helpers_tests.rb +7 -15
- data/test/unit/use_db_default_tests.rb +35 -27
- metadata +109 -87
- data/lib/ardb/has_slug.rb +0 -107
- data/lib/ardb/migration_helpers.rb +0 -77
- data/lib/ardb/pg_json.rb +0 -90
- data/test/support/postgresql/pg_json_migrations/20160519133432_create_pg_json_migrate_test.rb +0 -13
- data/test/system/pg_json_tests.rb +0 -85
- data/test/unit/has_slug_tests.rb +0 -341
- data/test/unit/migration_helpers_tests.rb +0 -65
- data/test/unit/pg_json_tests.rb +0 -39
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
---
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
SHA512:
|
6
|
-
|
7
|
-
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f61742815afbcc9e0a4e2a450864e15297d2dc3d6e4d1b61fcaf62d87551b048
|
4
|
+
data.tar.gz: 388acb5b938c3c51a8d6f9aa1c382fe2310d7ba919c4ef9c2d62bc50c4fffc87
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c05d1cefea07609365899f0f08d067a39b326859d86e13c669163658a0f56c0b162fda248be764ecf2c0638108b302893cd58717162027ce474d5fd06cd1db5a
|
7
|
+
data.tar.gz: 5080cb134c4f67bc6a8a6280f70945c0909bcdc4975123069663f5f061c8f63054970b87898e4a9d6f77171bb9ebbc3a88f766b5607040da637713667b5e305c
|
data/.l.yml
ADDED
data/.rubocop.yml
ADDED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.1.0
|
data/.t.yml
ADDED
data/Gemfile
CHANGED
@@ -1,13 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
source "https://rubygems.org"
|
2
4
|
|
3
|
-
|
5
|
+
ruby ">= 2.5"
|
4
6
|
|
5
|
-
|
6
|
-
gem 'pry', "~> 0.9.0"
|
7
|
+
gemspec
|
7
8
|
|
8
|
-
#
|
9
|
-
|
9
|
+
# Uncomment one of these and run:
|
10
|
+
#
|
11
|
+
# bundle update activerecord activesupport
|
12
|
+
#
|
13
|
+
# to test a specific version.
|
14
|
+
#
|
15
|
+
# Rails 7.0
|
16
|
+
gem "activerecord", "~> 7.0.1"
|
17
|
+
gem "activesupport", "~> 7.0.1"
|
18
|
+
# Rails 6.1
|
19
|
+
# gem "activerecord", "~> 6.1"
|
20
|
+
# gem "activesupport", "~> 6.1"
|
21
|
+
# Rails 6.0
|
22
|
+
# gem "activerecord", "~> 6.0.3"
|
23
|
+
# gem "activesupport", "~> 6.0.3"
|
24
|
+
# Rails 5.2
|
25
|
+
# gem "activerecord", "~> 5.2.4"
|
26
|
+
# gem "activesupport", "~> 5.2.4"
|
10
27
|
|
11
|
-
|
12
|
-
|
13
|
-
end
|
28
|
+
gem "pg", "~> 1.3"
|
29
|
+
gem "pry"
|
data/README.md
CHANGED
@@ -1,16 +1,265 @@
|
|
1
1
|
# Ardb
|
2
2
|
|
3
|
-
|
3
|
+
Tools for using ActiveRecord with or without Rails.
|
4
4
|
|
5
5
|
## Usage
|
6
6
|
|
7
|
-
|
7
|
+
Given configured database connection parameters, Ardb provides a CLI and assorted tools for working with an ActiveRecord database. Ardb is designed to be used with or without Rails.
|
8
|
+
|
9
|
+
### Configuration
|
10
|
+
|
11
|
+
By default, Ardb looks for database configuration in the `config/db.rb` file. You can override this using the `ENV["ARDB_DB_FILE"]` env var.
|
12
|
+
|
13
|
+
The configuration includes typical database configuration parameters:
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
# in config/db.rb
|
17
|
+
require "ardb"
|
18
|
+
|
19
|
+
Ardb.configure do |c|
|
20
|
+
c.logger Logger.new($stdout)
|
21
|
+
c.root_path File.expand_path("../..", __FILE__)
|
22
|
+
|
23
|
+
c.db.adapter "postgresql"
|
24
|
+
c.db.encoding "unicode"
|
25
|
+
c.db.min_messages "WARNING"
|
26
|
+
c.db.url "localhost:5432"
|
27
|
+
c.db.username "testuser"
|
28
|
+
c.db.password "secret"
|
29
|
+
c.db.database "testdb"
|
30
|
+
end
|
31
|
+
```
|
32
|
+
|
33
|
+
#### Rails configuration
|
34
|
+
|
35
|
+
If using Ardb with Rails, add a `config/db.rb` file to have Ardb use Rails's configuration settings:
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
# in config/db.rb
|
39
|
+
require_relative "./environment"
|
40
|
+
require "ardb"
|
41
|
+
|
42
|
+
# This Ardb configuration matches Rails's settings.
|
43
|
+
Ardb.configure do |c|
|
44
|
+
rails_db_config = Rails.application.config_for("database")
|
45
|
+
c.root_path = Rails.root
|
46
|
+
c.logger = Rails.logger
|
47
|
+
c.schema_format = Rails.application.config.active_record.schema_format || :ruby
|
48
|
+
c.default_timezone = :utc
|
49
|
+
c.adapter = rails_db_config["adapter"]
|
50
|
+
c.host = rails_db_config["host"]
|
51
|
+
c.port = rails_db_config["port"]
|
52
|
+
c.username = rails_db_config["username"]
|
53
|
+
c.password = rails_db_config["password"]
|
54
|
+
c.database = rails_db_config["database"]
|
55
|
+
c.encoding = rails_db_config["encoding"]
|
56
|
+
c.min_messages = rails_db_config["min_messages"]
|
57
|
+
|
58
|
+
c.migrations_path = "db/migrate"
|
59
|
+
c.schema_path = "db/schema"
|
60
|
+
end
|
61
|
+
```
|
62
|
+
|
63
|
+
### CLI
|
64
|
+
|
65
|
+
```
|
66
|
+
$ ardb --help
|
67
|
+
Usage: ardb [COMMAND] [options]
|
68
|
+
|
69
|
+
Options:
|
70
|
+
--version
|
71
|
+
--help
|
72
|
+
|
73
|
+
Commands:
|
74
|
+
connect Connect to the configured DB
|
75
|
+
create Create the configured DB
|
76
|
+
drop Drop the configured DB
|
77
|
+
generate-migration Generate a MIGRATION-NAME migration file
|
78
|
+
migrate Migrate the configured DB
|
79
|
+
migrate-up Migrate the configured DB up
|
80
|
+
migrate-down Migrate the configured DB down
|
81
|
+
migrate-forward Migrate the configured DB forward
|
82
|
+
migrate-backward Migrate the configured DB backward
|
83
|
+
```
|
84
|
+
|
85
|
+
#### `connect` command
|
86
|
+
|
87
|
+
```
|
88
|
+
$ ardb connect --help
|
89
|
+
Usage: ardb connect [options]
|
90
|
+
|
91
|
+
Options:
|
92
|
+
--version
|
93
|
+
--help
|
94
|
+
|
95
|
+
Description:
|
96
|
+
Connect to the configured DB
|
97
|
+
$ ardb connect
|
98
|
+
error: database "some_database" does not exist
|
99
|
+
$ ardb create
|
100
|
+
created postgresql db "some_database"
|
101
|
+
$ ardb connect
|
102
|
+
connected to postgresql db "some_database"
|
103
|
+
```
|
104
|
+
|
105
|
+
Use this command to verify the connection parameter configuration is correct.
|
106
|
+
|
107
|
+
#### `create` command
|
108
|
+
|
109
|
+
```
|
110
|
+
$ ardb create --help
|
111
|
+
Usage: ardb create [options]
|
112
|
+
|
113
|
+
Options:
|
114
|
+
--version
|
115
|
+
--help
|
116
|
+
|
117
|
+
Description:
|
118
|
+
Create the configured DB
|
119
|
+
$ ardb create
|
120
|
+
created postgresql db "some_database"
|
121
|
+
$ ardb create
|
122
|
+
error: database "some_database" already exists
|
123
|
+
```
|
124
|
+
|
125
|
+
#### `drop` command
|
126
|
+
|
127
|
+
```
|
128
|
+
$ ardb drop --help
|
129
|
+
Usage: ardb drop [options]
|
130
|
+
|
131
|
+
Options:
|
132
|
+
--version
|
133
|
+
--help
|
134
|
+
|
135
|
+
Description:
|
136
|
+
Drop the configured DB
|
137
|
+
$ ardb drop
|
138
|
+
dropped postgresql db "some_database"
|
139
|
+
$ ardb drop
|
140
|
+
error: database "some_database" does not exist
|
141
|
+
```
|
142
|
+
|
143
|
+
#### `generate-migration` command
|
144
|
+
|
145
|
+
```
|
146
|
+
$ ardb generate-migration add_projects --help
|
147
|
+
Usage: ardb generate-migration MIGRATION-NAME [options]
|
148
|
+
|
149
|
+
Options:
|
150
|
+
--version
|
151
|
+
--help
|
152
|
+
|
153
|
+
Description:
|
154
|
+
Generate a MIGRATION-NAME migration file
|
155
|
+
$ ardb generate-migration add_projects
|
156
|
+
generated /path/to/app/db/migrate/20191222074043_add_projects.rb
|
157
|
+
```
|
158
|
+
|
159
|
+
#### `migrate` command
|
160
|
+
|
161
|
+
```
|
162
|
+
$ ardb migrate --help
|
163
|
+
Usage: ardb migrate [options]
|
164
|
+
|
165
|
+
Options:
|
166
|
+
--version
|
167
|
+
--help
|
168
|
+
|
169
|
+
Description:
|
170
|
+
Migrate the configured DB
|
171
|
+
$ ardb migrate
|
172
|
+
== 20191222074043 AddProjects: migrating ======================================
|
173
|
+
-- create_table(:projects)
|
174
|
+
-> 0.0276s
|
175
|
+
== 20191222074043 AddProjects: migrated (0.0277s) =============================
|
176
|
+
```
|
177
|
+
|
178
|
+
#### `migrate-up` command
|
179
|
+
|
180
|
+
```
|
181
|
+
$ ardb migrate-up --help
|
182
|
+
Usage: ardb migrate-up [options]
|
183
|
+
|
184
|
+
Options:
|
185
|
+
-t, --target-version VALUE version to migrate to
|
186
|
+
--version
|
187
|
+
--help
|
188
|
+
|
189
|
+
Description:
|
190
|
+
Migrate the configured DB up
|
191
|
+
$ ardb migrate-up
|
192
|
+
== 20191222074043 AddProjects: migrating ======================================
|
193
|
+
-- create_table(:projects)
|
194
|
+
-> 0.0510s
|
195
|
+
== 20191222074043 AddProjects: migrated (0.0511s) =============================
|
196
|
+
```
|
197
|
+
|
198
|
+
#### `migrate-down` command
|
199
|
+
|
200
|
+
```
|
201
|
+
$ ardb migrate-down --help
|
202
|
+
Usage: ardb migrate-down [options]
|
203
|
+
|
204
|
+
Options:
|
205
|
+
-t, --target-version VALUE version to migrate to
|
206
|
+
--version
|
207
|
+
--help
|
208
|
+
|
209
|
+
Description:
|
210
|
+
Migrate the configured DB down
|
211
|
+
$ ardb migrate-down
|
212
|
+
== 20191222074043 AddProjects: reverting ======================================
|
213
|
+
-- drop_table(:projects)
|
214
|
+
-> 0.0092s
|
215
|
+
== 20191222074043 AddProjects: reverted (0.0132s) =============================
|
216
|
+
```
|
217
|
+
|
218
|
+
#### `migrate-forward` command
|
219
|
+
|
220
|
+
```
|
221
|
+
$ ardb migrate-forward --help
|
222
|
+
Usage: ardb migrate-forward [options]
|
223
|
+
|
224
|
+
Options:
|
225
|
+
-s, --steps VALUE number of migrations to migrate
|
226
|
+
--version
|
227
|
+
--help
|
228
|
+
|
229
|
+
Description:
|
230
|
+
Migrate the configured DB forward
|
231
|
+
$ ardb migrate-forward
|
232
|
+
== 20191222074043 AddProjects: migrating ======================================
|
233
|
+
-- create_table(:projects)
|
234
|
+
-> 0.0510s
|
235
|
+
== 20191222074043 AddProjects: migrated (0.0511s) =============================
|
236
|
+
```
|
237
|
+
|
238
|
+
#### `migrate-backward` command
|
239
|
+
|
240
|
+
```
|
241
|
+
$ ardb migrate-backward --help
|
242
|
+
Usage: ardb migrate-backward [options]
|
243
|
+
|
244
|
+
Options:
|
245
|
+
-s, --steps VALUE number of migrations to migrate
|
246
|
+
--version
|
247
|
+
--help
|
248
|
+
|
249
|
+
Description:
|
250
|
+
Migrate the configured DB backward
|
251
|
+
$ ardb migrate-backward
|
252
|
+
== 20191222074043 AddProjects: reverting ======================================
|
253
|
+
-- drop_table(:projects)
|
254
|
+
-> 0.0092s
|
255
|
+
== 20191222074043 AddProjects: reverted (0.0132s) =============================
|
256
|
+
```
|
8
257
|
|
9
258
|
## Installation
|
10
259
|
|
11
260
|
Add this line to your application's Gemfile:
|
12
261
|
|
13
|
-
gem
|
262
|
+
gem "ardb"
|
14
263
|
|
15
264
|
And then execute:
|
16
265
|
|
data/ardb.gemspec
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
5
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
6
|
require "ardb/version"
|
5
7
|
|
@@ -8,21 +10,23 @@ Gem::Specification.new do |gem|
|
|
8
10
|
gem.version = Ardb::VERSION
|
9
11
|
gem.authors = ["Kelly Redding", "Collin Redding"]
|
10
12
|
gem.email = ["kelly@kellyredding.com", "collin.redding@me.com"]
|
11
|
-
gem.summary =
|
12
|
-
gem.description =
|
13
|
+
gem.summary = "Activerecord database tools."
|
14
|
+
gem.description = "Activerecord database tools."
|
13
15
|
gem.homepage = "http://github.com/redding/ardb"
|
14
|
-
gem.license =
|
16
|
+
gem.license = "MIT"
|
15
17
|
|
16
|
-
gem.files
|
18
|
+
gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
17
19
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
18
20
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
19
21
|
gem.require_paths = ["lib"]
|
20
22
|
|
21
|
-
gem.
|
23
|
+
gem.required_ruby_version = ">= 2.5"
|
22
24
|
|
23
|
-
gem.
|
24
|
-
gem.
|
25
|
-
gem.add_dependency('much-plugin', ["~> 0.2.0"])
|
26
|
-
gem.add_dependency('scmd', ["~> 3.0.2"])
|
25
|
+
gem.add_development_dependency("much-style-guide", ["~> 0.6.7"])
|
26
|
+
gem.add_development_dependency("assert", ["~> 2.19.8"])
|
27
27
|
|
28
|
+
gem.add_dependency("activerecord", [">= 5.0"])
|
29
|
+
gem.add_dependency("activesupport", [">= 5.0"])
|
30
|
+
gem.add_dependency("much-mixin", ["~> 0.2.5"])
|
31
|
+
gem.add_dependency("scmd", ["~> 3.0.5"])
|
28
32
|
end
|
data/bin/ardb
CHANGED
data/lib/ardb/adapter/base.rb
CHANGED
@@ -1,27 +1,40 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ardb"
|
2
4
|
|
3
5
|
module Ardb; end
|
4
|
-
module Ardb::Adapter
|
5
6
|
|
7
|
+
module Ardb::Adapter
|
6
8
|
class Base
|
7
|
-
|
8
9
|
attr_reader :config
|
9
10
|
|
10
11
|
def initialize(config)
|
11
12
|
@config = config
|
13
|
+
validate!
|
14
|
+
end
|
15
|
+
|
16
|
+
def connect_hash
|
17
|
+
config.activerecord_connect_hash
|
18
|
+
end
|
19
|
+
|
20
|
+
def database
|
21
|
+
config.database
|
12
22
|
end
|
13
23
|
|
14
|
-
def
|
15
|
-
|
16
|
-
|
17
|
-
|
24
|
+
def migrations_path
|
25
|
+
config.migrations_path
|
26
|
+
end
|
27
|
+
|
28
|
+
def schema_format
|
29
|
+
config.schema_format
|
30
|
+
end
|
18
31
|
|
19
32
|
def ruby_schema_path
|
20
|
-
@ruby_schema_path ||= "#{
|
33
|
+
@ruby_schema_path ||= "#{config.schema_path}.rb"
|
21
34
|
end
|
22
35
|
|
23
36
|
def sql_schema_path
|
24
|
-
@sql_schema_path ||= "#{
|
37
|
+
@sql_schema_path ||= "#{config.schema_path}.sql"
|
25
38
|
end
|
26
39
|
|
27
40
|
def escape_like_pattern(pattern, escape_char = nil)
|
@@ -33,50 +46,55 @@ module Ardb::Adapter
|
|
33
46
|
pattern
|
34
47
|
end
|
35
48
|
|
36
|
-
def
|
37
|
-
|
49
|
+
def create_db(*args)
|
50
|
+
raise NotImplementedError
|
51
|
+
end
|
38
52
|
|
39
|
-
def
|
40
|
-
|
53
|
+
def drop_db(*args)
|
54
|
+
raise NotImplementedError
|
55
|
+
end
|
41
56
|
|
42
|
-
def drop_tables(*args)
|
57
|
+
def drop_tables(*args)
|
58
|
+
raise NotImplementedError
|
59
|
+
end
|
43
60
|
|
44
61
|
def connect_db
|
45
|
-
ActiveRecord::Base.establish_connection(
|
46
|
-
# checkout a connection to ensure we can connect to the DB, we don
|
62
|
+
ActiveRecord::Base.establish_connection(connect_hash)
|
63
|
+
# checkout a connection to ensure we can connect to the DB, we don"t do
|
47
64
|
# anything with the connection and immediately check it back in
|
48
|
-
ActiveRecord::Base.connection_pool.with_connection{
|
65
|
+
ActiveRecord::Base.connection_pool.with_connection{}
|
49
66
|
end
|
50
67
|
|
51
68
|
def migrate_db
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
if defined?(ActiveRecord::Migration::CommandRecorder)
|
56
|
-
require 'ardb/migration_helpers'
|
57
|
-
ActiveRecord::Migration::CommandRecorder.class_eval do
|
58
|
-
include Ardb::MigrationHelpers::RecorderMixin
|
59
|
-
end
|
60
|
-
end
|
69
|
+
migrate_db_up
|
70
|
+
end
|
61
71
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
72
|
+
def migrate_db_up(target_version = nil)
|
73
|
+
migration_context.up(target_version)
|
74
|
+
end
|
75
|
+
|
76
|
+
def migrate_db_down(target_version = nil)
|
77
|
+
migration_context.down(target_version)
|
78
|
+
end
|
79
|
+
|
80
|
+
def migrate_db_forward(steps = 1)
|
81
|
+
migration_context.forward(steps)
|
82
|
+
end
|
83
|
+
|
84
|
+
def migrate_db_backward(steps = 1)
|
85
|
+
migration_context.rollback(steps)
|
67
86
|
end
|
68
87
|
|
69
88
|
def load_schema
|
70
|
-
# silence STDOUT
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
load_sql_schema if self.schema_format == Ardb::Config::SQL_SCHEMA_FORMAT
|
89
|
+
current_stdout = $stdout.dup # silence STDOUT
|
90
|
+
$stdout = File.new("/dev/null", "w")
|
91
|
+
load_ruby_schema if schema_format == Ardb::Config::RUBY_SCHEMA_FORMAT
|
92
|
+
load_sql_schema if schema_format == Ardb::Config::SQL_SCHEMA_FORMAT
|
75
93
|
$stdout = current_stdout
|
76
94
|
end
|
77
95
|
|
78
96
|
def load_ruby_schema
|
79
|
-
load
|
97
|
+
load ruby_schema_path
|
80
98
|
end
|
81
99
|
|
82
100
|
def load_sql_schema
|
@@ -84,18 +102,17 @@ module Ardb::Adapter
|
|
84
102
|
end
|
85
103
|
|
86
104
|
def dump_schema
|
87
|
-
# silence STDOUT
|
88
|
-
|
89
|
-
$stdout = File.new('/dev/null', 'w')
|
105
|
+
current_stdout = $stdout.dup # silence STDOUT
|
106
|
+
$stdout = File.new("/dev/null", "w")
|
90
107
|
dump_ruby_schema
|
91
|
-
dump_sql_schema if
|
108
|
+
dump_sql_schema if schema_format == Ardb::Config::SQL_SCHEMA_FORMAT
|
92
109
|
$stdout = current_stdout
|
93
110
|
end
|
94
111
|
|
95
112
|
def dump_ruby_schema
|
96
|
-
require
|
97
|
-
FileUtils.mkdir_p File.dirname(
|
98
|
-
File.open(
|
113
|
+
require "active_record/schema_dumper"
|
114
|
+
FileUtils.mkdir_p File.dirname(ruby_schema_path)
|
115
|
+
File.open(ruby_schema_path, "w:utf-8") do |file|
|
99
116
|
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, file)
|
100
117
|
end
|
101
118
|
end
|
@@ -105,13 +122,21 @@ module Ardb::Adapter
|
|
105
122
|
end
|
106
123
|
|
107
124
|
def ==(other)
|
108
|
-
if other.
|
109
|
-
|
125
|
+
if other.is_a?(self.class)
|
126
|
+
config == other.config
|
110
127
|
else
|
111
128
|
super
|
112
129
|
end
|
113
130
|
end
|
114
131
|
|
115
|
-
|
132
|
+
private
|
116
133
|
|
134
|
+
def validate!
|
135
|
+
# override as needed
|
136
|
+
end
|
137
|
+
|
138
|
+
def migration_context
|
139
|
+
ActiveRecord::MigrationContext.new(migrations_path)
|
140
|
+
end
|
141
|
+
end
|
117
142
|
end
|
data/lib/ardb/adapter/mysql.rb
CHANGED
@@ -1,21 +1,8 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
class Mysql < Base
|
6
|
-
|
7
|
-
def foreign_key_add_sql
|
8
|
-
"ALTER TABLE :from_table"\
|
9
|
-
" ADD CONSTRAINT :name"\
|
10
|
-
" FOREIGN KEY (:from_column)"\
|
11
|
-
" REFERENCES :to_table (:to_column)"
|
12
|
-
end
|
13
|
-
|
14
|
-
def foreign_key_drop_sql
|
15
|
-
"ALTER TABLE :from_table"\
|
16
|
-
" DROP FOREIGN KEY :name"
|
17
|
-
end
|
3
|
+
require "ardb/adapter/base"
|
18
4
|
|
5
|
+
module Ardb::Adapter
|
6
|
+
class Mysql < Ardb::Adapter::Base
|
19
7
|
end
|
20
|
-
|
21
8
|
end
|