ardb 0.28.3 → 0.30.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|